旋轉陣列中的最小元素

踩著七彩祥雲的猴子發表於2020-09-25
  • 因為這個移動不是根據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;
    }
};

相關文章