把mid和nums[0]对比来缩小区间,防止最后nums是升序的,最后加了一个判断nums[0] < nums[l] 是否成立。
class Solution {
public:
int findMin(vector<int>& nums) {
if(!nums.size()) return 0;
int l = 0, r = nums.size() - 1;
while(l < r)
{
int mid = (l + r) >> 1;
// cout << mid << endl;
if(nums[0] <= nums[mid])//这里的比较
l = mid + 1;
else r = mid;
}
return nums[0] < nums[l]? nums[0]: nums[l];
}
};
**