class Solution {
  public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        int n = rotateArray.size();
        int l = 0, r = n - 1;
        while (l < r) {
            int mid = (l + r) / 2;
            if (rotateArray[mid] > rotateArray[r]) l = mid + 1;
            else if (rotateArray[mid] < rotateArray[r]) r = mid;
            else r--;
        }
        return rotateArray[l];
    }
};