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

    154. Find Minimum in Rotated Sorted Array II

    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.

    The array may contain duplicates.

    Example 1:

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

    Example 2:

    Input: [2,2,2,0,1]
    Output: 0

    Note:

    题意:给定一个“旋转”的有序(从小到大排序)数组,找出其中最小值

    代码如下:

    /**
     * @param {number[]} nums
     * @return {number}
     */
    // 二分查找:将数组看成两个非递减的子数组,所以最小值一定在第二个子数组的第一个,只要数组旋转了最小值就处于相对“右边”
    // 即不断的比较中间值和“右侧值”就能找到最小值
    var findMin = function(nums) {
        let left=0;
        let right=nums.length-1;
        while(left<right){
            let mid=Number.parseInt((left+right)/2);
            if(nums[right]>nums[mid]) right=mid;
            else if(nums[right]<nums[mid]) left=mid+1;
            // 如果元素值相等,较小的一定在right的左边,所以right向左移一位继续比较
            else right--;
        }
        return nums[left]
    };
  • 相关阅读:
    三、oneinstack
    二、两条Linux删除数据跑路命令
    一、定时任务
    三、Docker网络
    C#数据结构
    四、字段大全
    【2019-06-14】同事的低迷
    【2019-06-13】同事的进步
    【2019-06-12】看书的好地方
    【2019-06-11】笔耕不辍
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/11296461.html
Copyright © 2011-2022 走看看