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

处理收尾相同的重复即可

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

你可能感兴趣的:(Leetcode 154. 寻找旋转排序数组中的最小值 II)