C++ 代码
此题需要先做预处理才能二分
class Solution {
public:
int findMin(vector<int>& nums) {
if(nums.empty()) return -1;
int length = nums.size();
while(length && nums[0] == nums[length-1]) length--;
int mid, l=0, r=length -1;
if(nums[r] >= nums[l]) return nums[0];
while(l<r){
mid = l+r>>1;
if(nums[mid] < nums[0]) r = mid;
else l = mid + 1;
}
return nums[l];
}
};