zoukankan      html  css  js  c++  java
  • 【刷题-LeetCode】153 Find Minimum in Rotated Sorted Array

    1. Find Minimum in Rotated Sorted Array

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

    (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).

    Find the minimum element.

    You may assume no duplicate exists in the array.

    Example 1:

    Input: [3,4,5,1,2] 
    Output: 1
    

    Example 2:

    Input: [4,5,6,7,0,1,2]
    Output: 0
    

    二分查找

    class Solution {
    public:
        int findMin(vector<int>& nums) {
            // 特殊情况
            if(nums.size() == 1)return nums[0];
            int l = 0, r = nums.size()-1, mid;
            if(nums[r] > nums[l])return nums[l];
            //查找
            while(l <= r){
                mid = (l+r)/2;
                //两种情况对应着断点
                if(nums[mid] > nums[mid+1])return nums[mid+1];
                if(nums[mid-1] > nums[mid])return nums[mid];
                //调整两侧的范围
                if(nums[mid] > nums[0]){
                    l = mid + 1;
                }else{
                    r = mid - 1;
                }
            }
            return -1;
        }
    };
    
  • 相关阅读:
    jquery 不支持$.browser
    js 双向绑定
    css3 省略号
    js生成txt文件
    Browser-sync
    Generator & yield write in sync way
    Charles
    缓动函数与动画
    让Safari使用Chrome的代理
    React 同构
  • 原文地址:https://www.cnblogs.com/vinnson/p/13260996.html
Copyright © 2011-2022 走看看