Find Minimum in Rotated Sorted Array
class Solution { public: int findMin(vector<int>& nums) { int l = 0, r = nums.size()-1; int n = nums.size(); while(l<r){ int mid = (l+r)/2; int val = nums[mid]; int rval = nums[r]; if(nums[l]<=nums[r]) return nums[l]; // 只需要比较最右边的元素 if(rval<val){ l = mid+1; } else { r = mid; } } return nums[l]; } };
只需要找到一段有序区间即可,保证这段里面左边的是最小值
浙公网安备 33010602011771号