题解 | #寻找峰值#

寻找峰值

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
};
全部评论

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务