说明:
这道题最佳方法时间复杂度为o(n),大家二分方法时间复杂度分析不对
class Solution { public: int minNumberInRotateArray(vector<int> rotateArray) { int l = 0, r = rotateArray.size() - 1; while (r && rotateArray[r] == rotateArray[0]) r--; if (r == 0) return rotateArray[0]; if (rotateArray[0] < rotateArray[r]) return rotateArray[0]; while (l < r) { int mid = (l + r) >> 1; if (rotateArray[mid] < rotateArray[0]) { r = mid; } else { l = mid + 1; } } return rotateArray[l]; } };