题解 | #旋转数组的最小数字#

旋转数组的最小数字

https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba

function minNumberInRotateArray(rotateArray)
{
    // write code here
    let len = rotateArray.length;
    if(rotateArray[len - 1] < rotateArray[len - 2]){
        return rotateArray[len - 1];
    }
    
    if(rotateArray[0] < rotateArray[1] && rotateArray[len - 1] >= rotateArray[len - 2] && rotateArray[0] < rotateArray[len - 1]){
        return rotateArray[0];
    }
    
    let l = 0;
    let r = len - 1;
    let mid = Math.floor(l + (r - l) / 2);;
    let aimIndex = -1;
    
    while(l <= r){
        if(rotateArray[mid] < rotateArray[mid - 1]){
            return rotateArray[mid];
        }else{
            if(mid > 0){
                mid--;
            }else{
                mid = len - 2;
            }
        }
    }
}
module.exports = {
    minNumberInRotateArray : minNumberInRotateArray
};

全部评论

相关推荐

在校生实习:我觉得平时学校肯定有各种大作业吧。包装一下写项目里。特长那块喧宾夺主了,项目肯定是大头。特长里比如:熟悉vscode,这个感觉不具有吸引性。简要介绍你会什么语言,什么工具等就行了。同26找实习,我是个超级菜鸡😭大家一起加油
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务