题解 | #寻找峰值#

寻找峰值

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

相关推荐

Noel_:中石油是这样的 哥们侥幸混进免笔试名单 一看给我吓尿了
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务