162. 寻找峰值 ( 二分 )

LeetCode:162. 寻找峰值

在这里插入图片描述


在这里插入图片描述

两端是趋近于负无穷

可以理解成这是一条多极大值的线, 极大值就在单调性递增的一头.


AC Code

class Solution {
    
    
    public int findPeakElement(int[] nums) {
    
    
        int left = 0, right = nums.length - 1;

        while(left < right) {
    
    
            int mid = left + (right - left) / 2;

            // 对于所有有效的 i 都有 nums[i] != nums[i + 1]
            if(nums[mid] < nums[mid + 1]) {
    
    
                left = mid + 1;
            } else if(nums[mid] > nums[mid + 1]) {
    
    
                right = mid;
            }
        }

        return left;
    }
}



猜你喜欢

转载自blog.csdn.net/qq_43765535/article/details/112835423