class Solution {
public:
int findMin(vector<int>& nums) {
int l = 0, r = nums.size();
// 特判只有一个区间的情况
if(nums[0] <= nums[r - 1]) return nums[0];
// 直接二分,将下标限制在右边增区间的第一个位置
while(l < r){
int mid = l + r >> 1; // 模板中,如果是r=mid就不用+1
if(nums[mid] >= nums[0]) l = mid + 1;
else r = mid;
}
return nums[l];
}
};