【二分查找】162. 寻找峰值

162. 寻找峰值

解题思路

  • 改造二分查找算法
  • 如果nums[mid] > nums[mid + 1] 说明左侧存在较大的峰值
  • 如果nums[mid] <= nums[mid + 1] 说明右侧存在较大的峰值
java 复制代码
class Solution {
    public int findPeakElement(int[] nums) {
        // 原始数组不是有序
        // 改造二分查找算法

        int left = 0;
        int right = nums.length - 1;

        while(left < right){
            int mid = left + (right - left) / 2;

            if(nums[mid] > nums[mid + 1]){
                // 说明左侧存在较大峰值
                right = mid;
            }else if(nums[mid] <= nums[mid + 1]){
                // 说明右侧存在较大峰值
                left = mid + 1;
            }
        }

        return left;
    }
}
相关推荐
pusheng20255 分钟前
普晟传感2026年新春年会总结与分析
前端·javascript·html
谢尔登7 分钟前
React19事件调度的设计思路
前端·javascript·react.js
一匹电信狗7 分钟前
【高阶数据结构】并查集
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio
愚者游世25 分钟前
list Initialization各版本异同
开发语言·c++·学习·程序人生·算法
2301_7965125225 分钟前
【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Lazyload 懒加载(懒加载的图片)
前端·javascript·react native·react.js·ecmascript·harmonyos
.小墨迹27 分钟前
apollo中车辆的减速绕行,和加速超车实现
c++·学习·算法·ubuntu·机器学习
敲敲了个代码31 分钟前
从N倍人力到1次修改:Vite Plugin Modular 如何拯救多产品前端维护困境
前端·javascript·面试·职场和发展·typescript·vite
超级大只老咪31 分钟前
DFS算法(回溯搜索)
算法
摘星编程34 分钟前
OpenHarmony环境下React Native:Timeline时间轴组件
javascript·react native·react.js
摘星编程36 分钟前
在OpenHarmony上用React Native:Timeline水平时间轴
javascript·react native·react.js