思路:
有多个峰值,当nums[mid] > nums[mid+1]的时候,说明是在一个下降的区间里面,说明在mid的前面一定存在一个峰值,所以 right = mid(不能mid - 1)
代码:
class Solution {
public int findPeakElement(int[] nums) {
int left = 0;
int right = nums.length - 1;
while(left < right){
int mid = left + (right - left) / 2;
if(nums[mid] > nums[mid+1]){
right = mid;
}else{
left = mid+1;
}
}
return left;
}
}