题解 | #寻找峰值#

寻找峰值

http://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76

```/**
 *
 * 
 * @param nums int整型一维数组 
 * @return int整型
 */
function findPeakElement( nums ) {
    //只要想清楚:数值一直往上走就有波峰 这一点就可以很简单解决这个问题了
    let [left , right] = [0 , nums.length]
    while(left < right){
        let mid = left + Math.floor((right - left) / 2)
//         当nums[mid] 小于 nums[mid + 1],证明mid右侧数值往上走,会遇见波峰,将left置为mid + 1,反之则right置为mid
//         当left与right位置重合时,既是峰值
        if(nums[mid] < nums[mid + 1]) left = mid + 1
        else right = mid
    }
    return left
}
module.exports = {
    findPeakElement : findPeakElement
};
全部评论

相关推荐

03-12 09:57
软件测试
程序员小白条:1)确定测试,测开的方向,技术栈不能写这么少 2)课程凑数的,不是99,100分没必要写 3)实习经历这块要有突出的不是劳动性质的亮点,自己设计的什么方案,什么自动化?什么提效工具?不是一些边角料,人云亦云的东西,没吸引力 4) 校园经历纯没用 5)尽量少写减分项
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务