【二分查找】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;
    }
}
相关推荐
梵尔纳多3 分钟前
使用 Electron 实现一个简单的文本编辑器
前端·javascript·electron
思成Codes5 分钟前
数据结构: 权值线段树——线段树系列(提供模板)
数据结构·算法
笨手笨脚の7 分钟前
链表与LinkedList
java·数据结构·链表·linkedlist
历程里程碑10 分钟前
破解三数之和:双指针高效解法
c语言·数据结构·c++·经验分享·算法·leetcode·排序算法
Vect__13 分钟前
25.12.27 算法日记——双指针
c++·算法
小oo呆14 分钟前
【自然语言处理与大模型】LangChainV1.0入门指南:核心组件Streaming
前端·javascript·easyui
Swizard15 分钟前
数据不够代码凑?用 Albumentations 让你的 AI 模型“看”得更广,训练快 10 倍!
python·算法·ai·训练
Aotman_16 分钟前
Vue.directive:自定义指令及传参
前端·javascript·vue.js·elementui·ecmascript·es6
2501_9462309820 分钟前
Cordova&OpenHarmony用户账户管理
android·javascript
梵得儿SHI20 分钟前
2025 Vue 技术实战全景:从工程化到性能优化的 8 个落地突破
前端·javascript·vue.js·pinia2.2·响应式数据分片·展望vue3.6·2025年vue技术栈