zoukankan      html  css  js  c++  java
  • 153. Find Minimum in Rotated Sorted Array(js)

    153. 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
    题意:给定一个旋转后的数组,返回最小项,不能暴力遍历,时间复杂度要求O(lgn)
    代码如下:
    /**
     * @param {number[]} nums
     * @return {number}
     */
    var findMin = function(nums) {
        let left = 0,right=nums.length-1;
    //     如果最后一项大于第一项,说明没有旋转,直接返回第一项,否则继续二分查找
        if(nums[left]>nums[right]){
    //         最后会剩下相邻两项,较小的项即为最小项
            while(left+1!==right){
                let mid=parseInt((left+right)/2);
                if(nums[left]>nums[mid]) right=mid;
                else left=mid; 
            }
            return Math.min(nums[left],nums[right]);
        }
        return nums[0]
    };
  • 相关阅读:
    ANDROID BINDER机制浅析
    ANDROID权限机制
    运算符
    Give root password for maintenance
    安装python工具
    gitlab
    jumpserver
    python环境安装
    inode
    升级openssh漏洞
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/11256537.html
Copyright © 2011-2022 走看看