C++ 代码
class Solution {
public:
int findMin(vector<int>& nums) {
if(nums.size()==0) return -1;
int base = nums[0],len = nums.size() - 1;
while(nums[0]==nums[len]&&len>0)
len--;
if(nums[0]<=nums[len]) return nums[0];
int l = 0, r = len;
while(l<r){
int mid = (l+r)>>1;
if(nums[mid]<base) r = mid;
else l = mid+1;
}
return nums[r];
}
};