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

思路

二分查找变种

// 旋转数组的最小数
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];
}
原文地址:https://www.cnblogs.com/syw-home/p/13926875.html