力扣面试150 寻找峰值 二分

news2024/9/27 23:12:40

Problem: 162. 寻找峰值
在这里插入图片描述

👨‍🏫 参考图解

在这里插入图片描述

class Solution {
    public int findPeakElement(int[] nums) {
        int l = 0;  // 初始化左边界,表示数组的起始位置
        int r = nums.length - 1;  // 初始化右边界,表示数组的结束位置

        // 当左边界和右边界没有重合时,持续二分查找
        while(l < r){
            // 计算中间位置,避免整数溢出(相当于 (l + r) / 2)
            int m = l + (r - l) / 2;

            // 判断当前位置的元素与右边相邻元素的关系
            if(nums[m] > nums[m + 1]){
                // 如果当前元素大于右边相邻的元素,说明中点处于一个“下坡”阶段,
                // 峰值可能在左侧(包括当前元素,因为它可能是一个峰值)
                r = m;  // 收缩右边界到中点位置,继续在左半部分查找
            } else {
                // 如果当前元素小于或等于右边相邻元素,说明中点处于“上坡”阶段,
                // 峰值一定在右侧区域
                l = m + 1;  // 左边界移动到中点的右侧,继续在右半部分查找
            }
        }

        // 最终,左右边界会收缩至同一点,此时该点一定是一个峰值
        return l;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“AI+Security”系列第3期(六):打造最懂安全的智能体-无极AI安全智能体平台落地与实践

近日&#xff0c;由安全极客、Wisemodel 社区、InForSec 网络安全研究国际学术论坛和海升集团联合主办的 “AI Security” 系列第 3 期技术沙龙&#xff1a;“AI 安全智能体&#xff0c;重塑安全团队工作范式” 活动顺利举行。此次活动吸引了线上线下超过千名观众参与。 活动…

基于微信开发助手企鹅音乐微信小程序的设计与实现(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

pyside6与协程

目录 一、常见错误 错误一、使用协程函数作为槽函数。 错误二、在Qt循环中创建新的loop 二、解决方法&#xff1a; ①安装库qasync ②修改Qt入口 ③异步槽函数 ④异步函数 ⑤整体示例 一、常见错误 错误一、使用协程函数作为槽函数。 这样是肯定是不行&#xff…

BufferQueue低延迟优化,以及SurfaceView帧率上限问题解决

目录 了解BufferQueue 为什么会出现问题&#xff1f; 如何优化&#xff1f; 最近在做一个与音视频播放相关的项目&#xff0c;使用到了MediaCodec解码后送到SurfaceView播放场景。发现SurfaceView播放上限是60HZ&#xff0c;不符合项目需求&#xff0c;故而进行了研究并找到…

Jupyter Notebook 产生 jupyter_notebook_config.py 配置文件

Jupyter Notebook 产生 jupyter_notebook_config.py 配置文件 引言正文第一步第二步第三步引言 今天遇到了一个问题,当我安装了 VS code,之后又在 VS code 中安装了 Jupyter notebook 的 extension。之后可以在 VS code 中正常使用 Jupyter Notebook 的所有功能。但是,当我…

sqli-labs时间盲注、布尔盲注脚本

script.py&#xff1a;提供参数&#xff0c;用于调用布尔盲注或时间注入的函数 import time_type import bool_type ​ ​ # inject_type: 1.布尔盲注2.时间注入 # http_type&#xff1a;1.GET请求2.POST请求 # dict_para_data&#xff1a;所有的参数&#xff0c;和默认值 # v…

打靶记录18——narak

靶机: https://download.vulnhub.com/ha/narak.ova 推荐使用 VM Ware 打开靶机 难度&#xff1a;中 目标&#xff1a;取得 root 权限 2 Flag 攻击方法&#xff1a; 主机发现端口扫描信息收集密码字典定制爆破密码Webdav 漏洞PUT 方法上传BF 语言解码MOTD 注入CVE-2021-3…

SQL | 查询带有单引号的异常数据和replace与insert插入的区别

学习SQL 查找单引号异常数据知识点 replace 和 insertinsert 插入 timestamp 参数 查找单引号异常数据 表数据 代码 SELECT * FROM sys_barcode WHERE name LIKE %%;知识点 单引号&#xff08;&#xff09;在 SQL 查询中需要使用两个连续的单引号&#xff08;&#xff09;来表…

Vue3.X + SpringBoot小程序 | AI大模型项目 | 饮食陪伴官

gitee平台源码 github平台源码 饮食陪伴师是一个管理饮食的原生大模型小程序&#xff0c;优势&#xff1a; 精确营养监控&#xff1a;用户记录饮食后&#xff0c;我们会计算出食用的营养成分与分量&#xff0c;并反馈给用户。饮食建议有效&#xff1a;大模型经过我们训练具备大…

003、网关路由问题

1. nginx配置404跳转回默认路由 https://blog.csdn.net/masteryee/article/details/83689954 https://blog.csdn.net/IbcVue/article/details/133230460 https://www.jb51.net/server/317970ynk.htm https://blog.csdn.net/u014438244/article/details/120531287 https://blog…

光耦合器在信号传输和隔离中的作用

光耦合器&#xff0c;也称为光隔离器&#xff0c;是电子电路中的关键元件&#xff0c;它结合了两个基本功能&#xff1a;信号传输和电气隔离。它们允许信号在电路的不同部分之间传递&#xff0c;同时保持它们彼此电气隔离。此功能对于保护敏感的低压控制电路免受更高电压、噪声…

ST188单光束反射式红外光电传感器心率测量原理

光电传感器心率测量原理 ST188传感器测量脉搏的具体原理如下&#xff1a; 当手指轻轻按压在ST188红外光电传感器上时&#xff0c;传感器内部的红外发射二极管会发出红外线。这些红外线穿透手指皮肤&#xff0c;照射到血液上。由于脉搏跳动时&#xff0c;血液的体积和压力会发生…

manjaro KDE桌面的使用

manjaro KDE桌面的使用 正儿八经的摆龙门阵 近些年不喜欢发博客的我&#xff0c;今天来一篇与开发扯不上关系的文章。这篇文章发布后&#xff0c;该文章不再做更新。有相关爱好的小伙伴们可以选择私信。 manjaro的介绍我就不用说了&#xff0c;想大家看到这里都是对manjaro有…

Python实战:爬取网页图片

文章目录 一、实战概述二、图片网站三、爬取图片1、编写程序&#xff0c;实现功能2、运行程序&#xff0c;查看结果 四、实战小结 一、实战概述 在本实战项目中&#xff0c;我们编写了一个Python程序&#xff0c;用于从指定的图片网站&#xff08;https://pic.netbian.com/4kf…

西圣、漫步者头戴式耳机哪个音质好?热门主流头戴式耳机专业评测

一直以来头戴式蓝牙耳机凭借其独特的优势&#xff0c;逐渐成为了音乐爱好者、游戏玩家以及日常通勤者的首选&#xff0c;它们不仅融合了卓越的音质体验、便捷的无线连接&#xff0c;还融入了先进的降噪技术和人性化的佩戴设计&#xff0c;为用户带来了前所未有的听觉盛宴与舒适…

第十一章 分布式存储之哈希算法

目录 一、哈希取余分区 二、一致性哈希算法分区 三、哈希槽分区 在学习通过Docker进行Redis集群部署之前&#xff0c;简单聊一点Redis分布式集群存储相关的哈希算法问题&#xff1a; 一、哈希取余分区 2亿条记录就是2亿个KV&#xff0c;我们单机不行必须要分布式多机&…

高分作品《基于Java+MySQL图书销售管理系统》+源代码+文档说明

文章目录 源代码下载地址项目介绍项目功能界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 使用JavaSEJavaawtMySQL搭建的一个图书销售管理系统&#xff0c;主要涉及一个数据库&#xff0c;内含四张SQL表&#xff0c;管理员信息表&#xff0c;用…

Cesium 展示——倾斜摄影模型添加

文章目录 需求分析需求 这个图是网上随便找的,请忽略,就大概展示个加载后的样子。主要看代码思路和加载代码,代码中我不仅写了倾斜摄影加载的过程,还有加载后位置不太匹配进行的微调 分析 let tilesetUrlNew = /gt-qxsy/gt-caijian/tileset.json // 新的倾斜摄影模型 cons…

Redis在window下和linux下的区别

早期&#xff0c;redis只能运行在linux上&#xff0c;原因是底层调用的是epoll方法&#xff0c;而windows下没有该方法。除此之外&#xff0c;windows下也没有fork( )函数。最终为了强行能在windows上运行&#xff0c;使用的是select IOCP方式。 Epoll 是当事件资源满足时发出…

Python编码系列—Python责任链模式:打造灵活的请求处理流程

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…