旋转数组的最小数字

题目描述

题目地址:http://mtw.so/5PsgbX
题目要求:

有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

解题思路

  1. 数组从左向右查找
  2. 如果前一个 > 后一个,则后一个为最小元素
  3. 如果到数组末尾,依然没有前一个 > 后一个出现,则第一个为最小元素。

解题代码

function minNumberInRotateArray(rotateArray)
{
    // write code here
    for(var i=0; i<rotateArray.length-1;i++){
        if(rotateArray[i+1]<rotateArray[i])
            return rotateArray[i+1];
    }
    return rotateArray[0];
}
module.exports = {
    minNumberInRotateArray : minNumberInRotateArray
};
posted @ 2022-08-08 23:03  fionna  阅读(4)  评论(0编辑  收藏  举报