【二分查找】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;
    }
}
相关推荐
by__csdn几秒前
Vue2纯前端图形验证码实现详解+源码
前端·javascript·typescript·vue·状态模式·css3·canva可画
Gomiko15 分钟前
JavaScript基础(八):函数
开发语言·javascript·ecmascript
云里雾里!18 分钟前
力扣 209. 长度最小的子数组:滑动窗口解法完整解析
数据结构·算法·leetcode
我是阿亮啊22 分钟前
搭建Vue环境遇到的问题
javascript·vue.js·npm·node.js
CoderYanger1 小时前
递归、搜索与回溯-穷举vs暴搜vs深搜vs回溯vs剪枝:12.全排列
java·算法·leetcode·机器学习·深度优先·剪枝·1024程序员节
憨憨崽&1 小时前
进击大厂:程序员必须修炼的算法“内功”与思维体系
开发语言·数据结构·算法·链表·贪心算法·线性回归·动态规划
han_2 小时前
Vue.js 为什么要推出 Vapor Mode?
前端·javascript·vue.js
chem41112 小时前
C 语言 函数指针和函数指针数组
c语言·数据结构·算法
秋氘渔3 小时前
Vue 3 组合式写法:侦听器 watch 和 watchEffect 的区别及使用技巧
前端·javascript·vue.js·watch·watcheffect
liu****3 小时前
八.函数递归
c语言·开发语言·数据结构·c++·算法