说明:
这道题最佳方法时间复杂度为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];
}
};

京公网安备 11010502036488号