旋转数组中的最小元素

  • 因为这个移动不是根据target的比较进行了, 只是进行了上界和下界的逼近,直到两者相差1,就停止。
class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        if (rotateArray.size() == 0) {
            return 0;
        }
        int left = 0;
        int right = rotateArray.size() - 1;
        if (rotateArray[left] < rotateArray[right]) {
            return rotateArray[0];
        }
        while (left <= right) {
            int mid = (left + right) / 2;
            if (rotateArray[mid] >= rotateArray[0]) {
                left = mid;
            }
            else if (rotateArray[mid] <= rotateArray[rotateArray.size()-1]) {
                right = mid;
            }
            if (left + 1 == right) {
                return rotateArray[right];
            }
        }
        return 0;
    }
};
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页