您的位置:首页 > 产品设计 > UI/UE

153. Find Minimum in Rotated Sorted Array QuestionEditorial Solution

2016-08-09 14:33 15 查看
(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_;

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: