LC153.寻找旋转排序数组中的最小值
思路:二分查找
- 此题的二分性体现在“最小值不可能在哪一侧,就把哪一侧放弃掉”
 - 原题里面数组旋转过很多次了,但是无论怎么旋转,本质上都是两段
 

最小值一定出现在无序的一侧,如果
nums[mid] < nums[right],那右侧一定有序,反之左侧一定有序。代码:
class Solution {LC33.public:int findMin(vector<int>& nums) {// 二段性:最小值不可能在哪一侧int n = nums.size();int left = 0, right = n - 1;while (left < right) {int mid = (left + right) / 2;// 只要nums[right] > nums[mid]// 右边一定需要放弃掉if (nums[right] > nums[mid]) {right = mid;} else {left = mid + 1;}}return nums[left];}};
