用了一个trick,如果找不到nums[mid]>nums[mid+1], 那么就不存在rotation直接return第一个元素。
class Solution {
public:
int findMin(vector<int>& nums) {
int n = nums.size();
int l=0, r=n-1;
while(l<r){
int mid = l+(r-l)/2;
if(mid+1<n && nums[mid]>nums[mid+1]) return nums[mid+1];
else if(nums[mid]>nums[r]) l=mid+1;
else r=mid;
}
return nums[0];
}
};