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];
    }
}

通过截图

原文地址:https://www.cnblogs.com/ZJPaang/p/13770486.html