首页 > 试题广场 >

寻找峰值

[编程题]寻找峰值
  • 热度指数:41153 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。

假设 nums[-1] = nums[n] = -∞。


提示:
1 <= 数组长度 <= 1000
0 <= 数组元素的值 <= 1000

如输入[2,4,1,2,7,8,4]时,会形成两个山峰,一个是索引为1,峰值为4的山峰,另一个是索引为5,峰值为8的山峰,如下图所示:

按题目要求应该输出索引最大的山峰,所以对应的输出为5。
示例1

输入

[2,4,1,2,7,8,4]

输出

5
示例2

输入

[3,2,1,2,1]

输出

3

说明

因有两个山峰,一个是索引为0,峰值为3的山峰,另一个是索引为3,峰值为2的山峰,按题目要求应该输出索引最大的山峰,所以对应的输出为3。 

这道题你会答吗?花几分钟告诉大家答案吧!