根据二段性划分区间:
红区:满足nums[i] < nums[i + 1] 的区间
绿区:满足 nums[i] > nums[i + 1] 的区间
我们要找的就是绿区的左端点
class Solution {
public int findPeakElement(int[] nums) {
if(nums == null || nums.length == 0) return -1;
int l = 0, r = nums.length - 1;
while(l < r) {
int mid = l + r >> 1;
if(nums[mid] > nums[mid + 1]) {//mid绿
r = mid;
}else {
l = mid + 1;
}
}
return l;
}
}