LeetCode 154. 寻找旋转排序数组中的最小值 II

题目链接

154. 寻找旋转排序数组中的最小值 II

实现思路

LeetCode 153. 寻找旋转排序数组中的最小值的思路上,进行重复元素、即nums[mid] == nums[right]的处理即可,我们在这种情况下只需要让right指针做一个偏移即可。

代码实现

class Solution {
    public int findMin(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        while(left < right){
            int mid = left + ((right - left) >> 1);
            if(nums[mid] < nums[right]){
                right = mid;
            }else if(nums[mid] > nums[right]){
                left = mid + 1;
            }else{
                right--;
            }
        }
        return nums[right];
    }
}

通过截图

posted @ 2020-10-05 17:22  ZJPang  阅读(107)  评论(0编辑  收藏  举报