题目链接:153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode)
假设第一个是最小的,从第二个开始二分查找,如果当前元素比第一个小,说明最小值要么就是当前这个,要么在它之前,二分查找的规模减半,如果比第一个大,说明最小值在后面,二分查找的规模减半
class Solution {
public:
int findMin(vector<int>& nums) {
int min = nums[0], left = 1, right = nums.size() - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] < nums[0]) {
min = nums[mid];
right = mid - 1;
} else {
left = mid + 1;
}
}
return min;
}
};