【二分查找】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;
    }
}
相关推荐
py有趣6 分钟前
LeetCode算法学习之旋转矩阵
学习·算法·leetcode
三花聚顶<>6 分钟前
310.力扣LeetCode_ 最小高度树_三种方法总结
算法·leetcode·职场和发展
萘柰奈7 分钟前
LeetCode----200.岛屿数量(Medium)
算法·leetcode·职场和发展
Rough6688 分钟前
链表面试高频题实战:倒数第 k 个节点查找 + 指定值删除
数据结构·链表
我叫张小白。9 分钟前
Vue3 基本生命周期:组件的一生之旅
前端·javascript·vue.js·前端框架·vue3
MonkeyKing_sunyuhua10 分钟前
量化只支持a8w8和w4a8,其中a8w8和w4a8是什么意思?
人工智能·算法
QH_ShareHub18 分钟前
R 包中的生命周期触发函数全解析
前端·javascript·数据库
未来之窗软件服务21 分钟前
幽冥大陆(三十九)php二维数组去重——东方仙盟筑基期
android·开发语言·算法·php·仙盟创梦ide·东方仙盟·东方仙盟sdk
AI3D_WebEngineer22 分钟前
企业级业务平台项目设计、架构、业务全解之平台篇
前端·javascript·vue
DFT计算杂谈24 分钟前
Abinit-10.4.7安装教程
linux·数据库·python·算法·matlab