首页 > 试题广场 >

寻找峰值

[编程题]寻找峰值
  • 热度指数:41155 时间限制: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。 
头像 Stackingrule
发表于 2020-08-13 12:06:02
从后往前遍历数组 class Solution { public: /** * 寻找最后的山峰 * @param a int整型一维数组 * @param aLen int a数组长度 * @return int整型 */ int 展开全文
头像 LukeDU
发表于 2021-01-26 22:03:01
因为要求索引值最大的峰值,所以从末尾遍历数组,找到的第一个符合条件的值即索引最大。 问题只剩下对数组左右端点的处理,而当处于左右端点时已经满足条件,即i + 1 == n时条件已经满足,不用再判断a[i] >= a[i+1]。i-1 == 0时同理。 public int solve ( 展开全文
头像 lady_chen
发表于 2021-03-16 16:54:38
看到题目有两个需要注意的点: 1、找到索引最大的那个山峰元素并返回其索引,考虑从后往前遍历 注意不要越界就行~ 2、假设 nums[-1] = nums[n] = -∞,需要对端点做处理 即:在对于数组的最后一个值,只需要考虑是否大于等于前面一个值,代码如:(i == n - 1 && 展开全文
头像 Maokt
发表于 2021-07-23 18:30:41
算法思想一:遍历+峰值对比 解题思路: 1、找到索引最大的那个山峰元素并返回其索引,考虑从后往前遍历 2、假设 ,需要对端点做处理 即:在对于数组的最后一个值,只需要考虑是否大于等于前面一个值,代码如(&&),对于数组的第一个值,只需要考虑是否大于后面一个值,代码如(&a 展开全文
头像 开车的阿Q
发表于 2021-08-03 15:38:13
描述 这是一篇面对初级coder的题解。 知识点:二分法 导数 难度:二星 题解 题目: 山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。 假设& 展开全文
头像 后端技术加载ing
发表于 2021-08-29 16:28:05
山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。 假设 nums[-1] = nums[n] = -∞。 由于题干要求寻找索引最大的那个山峰元素,所以可以将数组从后往前遍历,去掉数组的头尾, 展开全文
头像 钰袖
发表于 2021-06-03 09:29:40
python: class Solution: def solve(self , a ): # write code here n=len(a); po=-1; for i in range(n): 展开全文
头像 helloRachel
发表于 2021-04-13 10:21:01
判断左边界、右边界特殊情况。遍历所有中间元素,只要大于左右元素,即为峰顶。用一个变量更新最大索引 import java.util.*; public class Solution { /** * 寻找最后的山峰 * @param a int整型一维数组 展开全文
头像 徇齐
发表于 2021-08-02 23:52:28
# -*- coding: utf-8 -*- # # 寻找最后的山峰 # @param a int整型一维数组 # @return int整型 # class Solution: def solve(self , a): # write code here 展开全文
头像 加油666
发表于 2021-06-07 11:46:17
Python 反转字符串 # # 寻找最后的山峰 # @param a int整型一维数组 # @return int整型 # class Solution: def solve(self , a ): # write code here if len(a) 展开全文