2951.找出峰值
【LetMeFly】2951.找出峰值:模拟(遍历)
力扣题目链接:https://leetcode.cn/problems/find-the-peaks/
给你一个下标从 0 开始的数组 mountain
。你的任务是找出数组 mountain
中的所有 峰值。
以数组形式返回给定数组中 峰值 的下标,顺序不限 。
注意:
- 峰值 是指一个严格大于其相邻元素的元素。
- 数组的第一个和最后一个元素 不 是峰值。
示例 1:
输入:mountain = [2,4,4] 输出:[] 解释:mountain[0] 和 mountain[2] 不可能是峰值,因为它们是数组的第一个和最后一个元素。 mountain[1] 也不可能是峰值,因为它不严格大于 mountain[2] 。 因此,答案为 [] 。
示例 2:
输入:mountain = [1,4,3,8,5] 输出:[1,3] 解释:mountain[0] 和 mountain[4] 不可能是峰值,因为它们是数组的第一个和最后一个元素。 mountain[2] 也不可能是峰值,因为它不严格大于 mountain[3] 和 mountain[1] 。 但是 mountain[1] 和 mountain[3] 严格大于它们的相邻元素。 因此,答案是 [1,3] 。
提示:
3 <= mountain.length <= 100
1 <= mountain[i] <= 100
解题方法:模拟(遍历)
用$i$从$1$到$mountain.length - 1$进行枚举,如果$mountain[i] \gt mountain[i - 1]$且$mountain[i]\gt mountain[i + 1]$,就将$i$添加到答案数组中。
小Tips: 将$i$添加到答案数组中的同时,可以将$i++$(因为下一个一定不是“峰值”元素)。
- 时间复杂度$O(mountain.length)$
- 空间复杂度$O(1)$
AC代码
C++
1 |
|
Go
1 |
|
Java
1 |
|
Python
1 |
|
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/139279605
2951.找出峰值
https://blog.letmefly.xyz/2024/05/28/LeetCode 2951.找出峰值/