162. 寻找峰值

日期:2022-9-16 00:00 | 标签: | 阅读:15

重点思路:

  1. log n 一定得用 2 分法
  2. 只要在爬坡就一定有一个山峰要越过
  3. 考虑提示对于所有有效的 i 都有 nums[i] != nums[i + 1],否则可能无解

ps: 这道题重点在思路不在编码,从左边上去的一定是爬坡,从右边来的也一定是爬坡,[l, r] 之间一定有一个顶**

/**
 * @param {number[]} nums
 * @return {number}
 */
var findPeakElement = function(nums) {
    // 
    // 
    let l = 0, r = nums.length - 1, mid;
    while(l < r){
        mid = Math.floor((l + r) / 2);
        if(nums[mid] > nums[mid + 1]){
            r = mid;
        }else{
            l = mid + 1;
        }
    }

    return r
};

版权声明: 署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0
Copyright ©2013-2022 | 粤ICP备14081691号 | yipeng手工打造 | 联系方式