欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LintCode-159: Find Minimum in Rotated Sorted Array

程序员文章站 2022-03-24 17:24:26
...

binary search的变种。先设target=nums[end], 然后mid跟target比,如果nums[mid]>=target,则说明mid切在第2象限,此时扔掉左边边,否则说明mid切在第4象限,此时扔掉右半边。
while()循环完后的最小值的index要么是start,要么是end。再比较一下即可。

LintCode-159: Find Minimum in Rotated Sorted Array

    int findMin(vector<int> &nums) {

        int start=0, end=nums.size()-1;
        int target=nums[end];

        while(start+1<end) {
            int mid=start+(end-start)/2;
            if (nums[mid]>=target) start=mid;
            else end=mid;

        }
        if (nums[start]<=nums[end]) return nums[start];
        else return nums[end];
    }
相关标签: LintCode