更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。
组队打卡,更多解法等你一起来参与哦!
LeetCode 162. 寻找峰值,难度中等。
数组
解题思路:
- 非边界情况:通过数组的遍历,比较当前节点与前后节点的大小,出现峰值则直接返回;
- 边界情况:直接比较,返回值较大的索引下表。
class Solution {
public int findPeakElement(int[] nums) {
int result = 0;
for (int i = 1; i < nums.length - 1; ++i) {
// 判断 nums[i] 是否是峰值
if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
return i;
}
}
// 判断边界是否是峰值
if (nums[result] < nums[nums.length - 1])
result = nums.length - 1;
return result;
}
}