LeetCode162-寻找峰值-二分-数组

原题链接
LeetCode162-寻找峰值-二分-数组_第1张图片

Note:

二分,每次判断一下子是不是峰值,峰值在哪边就好了
不过我们这里条件和变动要统一好,如果我们打算往右边找,就要让他和前一个去比,这样就不会越界

代码如下:
class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int l = 0, r = nums.size() - 1;
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(nums[mid] > nums[mid - 1])   l = mid;
            else    r = mid - 1;
        }
        return r;
    }
};

你可能感兴趣的:(算法,leetcode,二分,数组)