#9538. 支撑数
支撑数
版权信息
来源: 自定义题目 题目名称: 查找“支撑数”
任务总览表
任务名称 | 时间限制 | 内存限制 | 分数 |
---|---|---|---|
查找“支撑数” | 1000ms | 16MiB | 10 points |
题目描述
在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和右边相邻的数大,你能找到它们吗?
输入格式
- 第一行是整数 m,表示输入的整数个数(
3 ≤ m ≤ 100
)。 - 第二行是 m 个整数,表示输入的数列。
输出格式
- 输出若干个支撑数,每行一个。
样例输入
14
1 3 2 4 1 5 3 9 7 10 8 23 85 43
样例输出
3
4
5
9
10
85
提示
- 支撑数:一个数是支撑数当且仅当它比其左右相邻的两个数都大。即对于数列中的任意元素 **a[i](
2 ≤ i ≤ m-1
),若 a[i-1] < a[i] > a[i+1]**,则该数是一个支撑数。
题目分析
目标
- 给定一组整数,找到所有的支撑数并输出。
思路
- 遍历数列中的每个元素,从第二个到倒数第二个元素,检查是否比其左右相邻的数大。如果满足条件,则该元素为支撑数。
- 输出所有满足条件的支撑数。
解法
- 遍历数列:从第二个元素到倒数第二个元素,判断每个元素是否为支撑数。
- 判断条件:对于每个元素 **a[i],如果 a[i-1] < a[i] > a[i+1]**,则它是一个支撑数。
- 输出:将所有支撑数逐行输出。
时间复杂度分析
- 遍历一次数列的时间复杂度为 O(m),其中 m 为数列的长度,最坏情况下 m = 100,因此该方法在时间上是可行的。
结论
通过遍历数列并判断每个元素是否为支撑数,可以有效地解决此问题,时间复杂度为 **O(m)**。