class Solution {
public:
int minArray(vector<int>& numbers) {
if(numbers.size() == 1) return numbers[0]; //直接返回结果
int offset = numbers.size()-1;
while(offset && numbers[0] == numbers[offset]) offset--;
if(numbers[offset] >= numbers[0]) return numbers[0];
int l = 0, r = offset;
while(l < r){
int mid = (l+r) >> 1;
if(numbers[mid] < numbers[0]) r = mid;
else l = mid + 1;
}
return numbers[r];
}
};