剑指 Offer 11. 旋转数组的最小数字
题目链接
思路分析
利用二分查找即可。
class Solution {
public:
int minArray(vector<int>& numbers) {
std::ios::sync_with_stdio(false);
int l = 0, r = numbers.size() - 1;
while(r > 0 && numbers[r] == numbers[0]) r--;
if(numbers[r] >= numbers[0]) return numbers[0];
while(l < r){
int mid = l + r >> 1;
if(numbers[mid] < numbers[0]) r = mid;
else l = mid + 1;
}
return numbers[l];
}
};