153. 寻找旋转排序数组中的最小值

153. 寻找旋转排序数组中的最小值

LeetCode刷题打卡第013天 (第1篇)20210722

题目链接
153. 寻找旋转排序数组中的最小值

思路

  1. 运用二分法
  2. 取值图示
  3. 类似于leetcode 81题153. 寻找旋转排序数组中的最小值

代码

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];
    }
};
上一篇:2021-07-25


下一篇:153. 寻找旋转排序数组中的最小值