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

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

题目描述

点这里

思路分析

二分。
尾部去重,二分找断点。

代码实现

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

版权声明:本文为qq_50757994原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。