162. 寻找峰值(二分)

107 阅读1分钟

class Solution {
    public int findPeakElement(int[] nums) {
        int left = 0, right = nums.length - 1;
        while (left + 1 < right) {
            int mid = left + right >>> 1;
            //判断单调区间
            if(nums[mid]<nums[mid+1]) left = mid;
            else right = mid;
        }
        return nums[left] > nums[right] ? left : right;
    }
}