153. 寻找旋转排序数组中的最小值
LeetCode刷题打卡第013天 (第1篇)20210722
思路
- 运用二分法
- 取值图示
- 类似于leetcode 81题
代码
class Solution {
public:
int findMin(vector<int>& nums) {
//类似于81题
//因为是递增的序列,旋转后分为两个数组且分别为递增序列,因此需要判断所在区间是否为递增的
//
int left=0,right=nums.size()-1;
while(left<right){ //d当中只有一个值时返回一个值
int mid=(left+right)>>1;
//分为两种情况,nums[mid]<nums[right],则最小值在右侧
//当nums[mid]<nums[right],则最小值在左侧
if(nums[mid]>nums[right]){
left=mid+1;
}
else {
right=mid;
}
}
return nums[left];
}
};