算法题---升序数组,对旋转后的数组求最小值

 

 

 

思路

二分查找变种

// 旋转数组的最小数
int getMinNum(vector<int> &nums){
    int left = 0;
    int right = nums.size() -1;
    while(left <= right){
        int mid = left + (right - left) / 2;
        if(nums[mid] > nums[right]){
            left = mid + 1;
        }
        else if(nums[mid] < nums[right]){
            right = mid;
        }
        else if(nums[mid] == nums[right]){
            right--;
        }
    }
    return nums[left];
}

 

posted @ 2020-11-04 17:10  威威后花园  阅读(115)  评论(0编辑  收藏  举报