题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
题目其实都不难,主要是题目描述不够清晰,其中有些边界情况是合法的,比如只有一个的场景下是满足 峰值 逻辑的,由此可知,当一个元素的索引是边界值时,是需要判断峰值情况的
public int findPeakElement(int[] nums) { // write code here // 第一个和最后一个肯定都不是,从第二个开始判断,元素个数小于3的肯定不行 if (nums == null || nums.length == 1) { return -1; } for (int i = 1; i < nums.length; i++) { int cur = nums[i]; int pre = nums[i - 1]; int afterIndex = i + 1; if (afterIndex == nums.length) { if (cur > pre) { return i; } } else { int after = nums[afterIndex]; if (cur > pre && cur > after) { return i; } } } return -1; }