154. 寻找旋转排序数组中的最小值 II
1 //利用模板 2 3 //以最后一个值来划分 4 //如果比它小,在右边,更新r 5 //如果比它大,在左边,更新l 6 7 //由于有重复值的情况, 需要加入 mid 元素等于 hi 元素的情况 8 //此时应该将 hi 减 1 防止重复数字是最小元素 9 class Solution 10 { 11 public: 12 int findMin(vector<int>& nums) 13 { 14 int l = 0,r = nums.size() - 1; 15 while(l < r) 16 { 17 int mid = l + r >> 1; 18 if(nums[mid] < nums[r]) r = mid; 19 else if(nums[mid] > nums[r])l = mid + 1; 20 else r--; 21 } 22 return nums[l]; 23 } 24 };
Mamba never out

浙公网安备 33010602011771号