题解 | #寻找峰值#
寻找峰值
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],只要处理好数组为空,数组开头和数组结尾的特殊情况即可了。