题解 | 寻找峰值
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
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; } };