LeetCode153-寻找旋转排序数组中的最小值-数组-二分查找

原题链接
LeetCode153-寻找旋转排序数组中的最小值-数组-二分查找_第1张图片

Note:

根据nums[0]来判断是两段中的哪一段,来找到中点
一点问题要注意一下,就是最后转的全是升序的数组,找到的就是最后一个位置了,要跟nums[0]比一下输出最小的那一个

还有一个[2, 1]自己走一下就知道了 如果判断条件里带=号就不对了

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

你可能感兴趣的:(leetcode,算法,数据结构,数组,二分查找)