class Solution {
public:
int minArray(vector<int>& numbers) {
int len = numbers.size();
if(len == 0) return INT_MAX;
int left = 0;
int right = len - 1;
while(left < right) {
if(numbers[left] < numbers[right]) {
return numbers[left];
}
int mid = left + (right - left) / 2;
if(numbers[mid] > numbers[right]) { //不能和numbers[left]比较作为判断条件
left = mid + 1;
}
else if(numbers[mid] < numbers[right]) {
right = mid;
}
else {
right--;
}
}
return numbers[left];
}
};
剑指 Offer 11. 旋转数组的最小数字
最新推荐文章于 2022-10-08 22:26:59 发布