153. Find Minimum in Rotated Sorted Array QuestionEditorial Solution

来源:互联网 发布:搬瓦工 python vps 编辑:程序博客网 时间:2024/06/05 10:58

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

153. Find Minimum in Rotated Sorted Array

我们可能首先想到大擂台赛,故时间复杂度0(n),但题目明显不是考这个,所以我们想到0(log)

首先这个数组旋转,肯定是先一个升序,后一个降序排序,但是根据移动元素的多少分为下列两种:

0 1 2 4 5 6 7

1. 4 5 6 7 0 1 2      移动元素大于一半

2 6 7 0 1 2 4 5     移动元素小于一半

class Solution {
public:
    int findMin(vector<int>& nums) {
        int l = 0;
        int r = nums.size();
        int min_ = nums[0];
        while(l<r)
        {
            int mid = (l+r)/2;
            if(nums[l] < nums[mid] )
                l = mid;
            else
                r = mid;
            
            if(nums[mid] < min_)
                min_ = nums[mid];
        }
        return min_;
    }
};

0 0
原创粉丝点击