题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
import java.util.*;
public class Solution {
public int findPeakElement(int[] nums) {
int length = nums.length;
if (length < 0) return -1;
if (length == 1) return 0;
if (nums[0] > nums[1]) return 0; // Check for the first element
if (nums[length - 1] > nums[length - 2]) return length -
1; // Check for the last element
for (int i = 1; i < length - 1; i++) {
if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
return i;
}
}
return -1;
}
}
思路很简单,就是连着比较(nums[i] > nums[i - 1] && nums[i] > nums[i + 1],只要处理好数组为空,数组开头和数组结尾的特殊情况即可了。
查看12道真题和解析
