162. Find Peak Element
刷
June-22-2019
二分,通过单调性来判断该舍弃哪一半。
需要注意的就是edge case,其实l + 1 < r的办法某些情况比YLNR好用,比如现在,因为不会超边界.
public int findPeakElement(int[] nums) {
if (nums.length <= 1) return 0;
int l = 0, r = nums.length - 1;
while (l + 1 < r) {
int m = l + (r - l) / 2;
if (nums[m] < nums[m + 1]) {
l = m;
} else {
r = m;
}
}
return nums[l] > nums[r] ? l : r;
}