class Solution {
public:
/**
二分法的时间复杂度是o(logn),
*/
int findPeakElement(vector<int>& nums) {
int l=0;
int r= nums.size()-1;
while(l<=r){
int mid = l+(r-l)/2;
if(l==r) return r;
if(nums[mid] > nums[mid+1]){ //因为左边是无穷小,那么mid及左边一定有峰值
r = mid;
}else{ //因为右边是无穷小,则mid的右边一定有峰值
l = mid+1;
}
}
return r;
}
};

京公网安备 11010502036488号