22. 旋转数组的最小数字

 

 

 

 

 

 

 

class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        int minelem,n=rotateArray.size();
        //for(auto x: rotateArray)
        if(n==0) return 0;
        //采用二分法
        while(n>0 && (rotateArray[0] == rotateArray[n-1])) n--;
        int l=0,r=n-1;
        while(l<r)
        {
            int mid = l+r >>1;//[0,mid],[mid+1,r]
            if(rotateArray[0] > rotateArray[mid]) r=mid;
            else l=mid+1;
        }
        return rotateArray[r];
    }
};

 

posted @ 2020-02-25 22:21  靖愁  阅读(86)  评论(0编辑  收藏  举报