6 旋转数组的最小数字

class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        int len = rotateArray.size();
        if(len == 0) return 0;
        int left = 0, right = len - 1;
        while(left < right){
            int mid = (left + right)/2;
            if(rotateArray[mid] > rotateArray[left]) left = mid;   //这样可以保证最后剩下的两个元素是前(left)大后(right)小的,最后执行以下left= left+1,left指向的就是最小值
            else if(rotateArray[mid] < rotateArray[left]) right = mid;
            else left = left + 1;
        }
        return rotateArray[left];

    }
};

猜你喜欢

转载自blog.csdn.net/PartyPartyAnimal/article/details/79633434