【Leetcode每日一题】二分查找 - 山脉数组的峰顶索引(难度⭐⭐)(23)
1. 题目解析
Leetcode链接:852. 山脉数组的峰顶索引

这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。
核心在于找到题目中所说的峰值所在的下标并返回他们的下标即可。
2. 算法原理
峰顶及两侧数据特点分析
峰顶数据特点:
- 峰顶位置
arr[i]的值大于其前后两个位置的值,即arr[i] > arr[i - 1]且arr[i] > arr[i + 1]。
峰顶左侧数据特点:
- 峰顶左侧的数据呈现上升趋势,即
arr[i]的值大于其左侧位置的值arr[i - 1],但小于其右侧位置的值arr[i + 1]。
峰顶右侧数据特点:
- 峰顶右侧的数据呈现下降趋势,即
arr[i]的值小于其左侧位置的值arr[i - 1],但大于其右侧位置的值arr[i + 1]。
根据 mid 位置信息的搜索策略
上升趋势:
- 若
mid位置的数据呈现上升趋势,则接下来应在[mid + 1, right]区间内继续搜索峰顶。
下降趋势:
- 若
mid位置的数据呈现下降趋势,则接下来应在[left, mid - 1]区间内搜索峰顶。
峰顶位置:
- 若
mid位置恰好是峰顶,则直接返回该位置作为结果。
3. 代码编写
class Solution {
public:int peakIndexInMountainArray(vector<int>& arr) {int l = 0, r = arr.size() - 1, m = -1;while(l < r){m = (l + r) / 2;if(arr[m] > arr[m + 1]) r = m;else l = m + 1;}return r;}
};
The Last
嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。
觉得有点收获的话,不妨给我点个赞吧!
如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~
相关文章:
【Leetcode每日一题】二分查找 - 山脉数组的峰顶索引(难度⭐⭐)(23)
1. 题目解析 Leetcode链接:852. 山脉数组的峰顶索引 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于找到题目中所说的峰值所在的下标并返回他们的下标即可。 2. 算法原理 峰顶及两侧数据特点分析 峰顶数据…...
Linux添加用户分组练习
一、复制/etc/skel目录为/home/tuser1(/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限)。 cp -a /etc/skel /home/tuser1 chown -R tuser1:tuser1 /home/tuser1 chmod -R 700 /home/tuser1 二、编辑/etc/group文件,添加组h…...
云快充充电桩系统设计书
充电桩系统设计书 一、系统设计概述 随着新能源汽车市场的快速发展,充电桩作为电动汽车的重要配套设施,其市场需求日益增长。本系统旨在提供一套稳定、高效、易用的充电桩解决方案,以满足市场上新能源充电桩的主流需求。通过实现云快充V1.6协…...
oracle DG 原理
在Oracle中,什么是DG?DG有哪些优缺点? DG(Data Guard,数据卫士)不是一个备份恢复的工具,然而,DG却拥有备份的功能,在物理DG下它可以和主库一模一样,但是它存…...
MySQL篇—持久化和非持久化统计信息介绍(第一篇,总共三篇)
☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…...
Leetcode—65. 有效数字【困难】
2024每日刷题(118) Leetcode—65. 有效数字 实现代码 class Solution { public:bool isNumber(string s) {if(s.empty()) {return false;}bool seenNum false;bool seenE false;bool seenDot false;for(int i 0; i < s.size(); i) {switch(s[i]…...
【Java程序设计】【C00322】基于Springboot的高校竞赛管理系统(有论文)
基于Springboot的高校竞赛管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校竞赛管理系统,本系统有管理员、老师、专家以及用户四种角色; 管理员:首页、个人中心、管…...
41、网络编程/TCP.UDP通信模型练习20240301
一、编写基于TCP的客户端实现以下功能: 通过键盘按键控制机械臂:w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 1.基于TCP服务器的机械臂…...
Python中操作MySQL和SQL Server数据库的基础与实战【第97篇—MySQL数据库】
Python中操作MySQL和SQL Server数据库的基础与实战 在Python中,我们经常需要与各种数据库进行交互,其中MySQL和SQL Server是两个常见的选择。本文将介绍如何使用pymysql和pymssql库进行基本的数据库操作,并通过实际代码示例来展示这些操作。…...
【兔子机器人】五连杆运动学解算与VMC(virtual model control)
VMC (virtual model control,虚拟模型控制) 是一种直觉控制方式,其关键是在每个需要控制的自由度上构造恰当的虚拟构件以产生合适的虚拟力。虚拟力不是实际执行机构的作用力或力矩,而是通过执行机构的作用经过机构转换而成。对于一些控制问题…...
学习鸿蒙基础(6)
一、Prop属性 父——>子 单向同步 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。Prop装饰的变量和父组件建立单向的同步关系。Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组…...
标准PoE交换机、非标准PoE交换机和非PoE交换机三者到底有何区别?
目录 前言: 一、标准PoE交换机 1.1 工作原理 1.2 应用场景 1、视频监控 2、无线接入点 3、IP电话 1.3 优势 1、简化布线 2、简化安装 3、提高可靠性 二、非标准PoE交换机 2.1 工作原理 2.2 应用场景 1、无线路由器 2、IP电话 3、数据中心 2.3 优势…...
【软件测试】--功能测试4-html介绍
1.1 前端三大核心 html:超文本标记语言,由一套标记标签组成 标签: 单标签:<标签名 /> 双标签:<标签名></标签名> 属性:描述某一特征 示例:<a 属性名"属性值"> 1.2 html骨架标签 <!DOC…...
模型优化_XGBOOST学习曲线及改进,泛化误差
代码 from xgboost import XGBRegressor as XGBR from sklearn.ensemble import RandomForestRegressor as RFR from sklearn.linear_model import LinearRegression as LR from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split,c…...
Java8 - LocalDateTime时间日期类使用详解
🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…...
3D城市模型可视化:开启智慧都市探索之旅
随着科技的飞速发展,我们对城市的认知已经不再局限于平面的地图和照片。今天,让我们领略一种全新的城市体验——3D城市模型可视化。这项技术将带领我们走进一个立体、生动的城市世界,感受前所未有的智慧都市魅力。 3D城市模型通过先进的计算机…...
某查查首页瀑布流headers加密
目标网站: 某查查 对目标网站分析发现 红框内的参数和值都是加密的,是根据算法算出来的,故进行逆向分析。 由于没有固定参数名,只能通过搜索headers,在搜索的位置上打上断点,重新请求。 断点在此处断住&a…...
Microsoft Visio 文本框上标或下标
Microsoft Visio 文本框上标或下标 1. 文本框公式2. 选中需要成为上标或下标的部分,开始 - > 段落 -> 字体 -> 常规 -> 位置 -> 上标 / 下标3. 文本框公式4. 快捷键References 1. 文本框公式 2. 选中需要成为上标或下标的部分,开始…...
Java项目:29 基于SpringBoot+thymeleaf实现的图书管理系统
作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 基于SpringBootthymeleaf实现的图书管理系统分为管理员、读者两个登录角色,一共是8个功能模块 管理员权限 图书管理:…...
Unity游戏项目中的优化之摄像机视锥体剔除优化
在项目中一个完成的游戏场景一般都会有成千上百的物体,假如都去让GPU全部渲染一遍,那带来的消耗其实是挺大的,很多不在摄像机范围内的物体其实没有必要去渲染,尽管GPU自带剔除,但是如果从CPU阶段就提交给GPU指令——哪…...
Z2kDH - Writeup by AI
Z2kDH - Writeup by AI 题目描述 这是一个基于离散对数的密钥交换协议,类似于 Diffie-Hellman。题目给出了以下信息: 模数: modulus 1 << 258 (即 2^258)生成器: g 5Alice 的公钥: 99edb8ed8892c664350acbd5d35346b9b77dedfae758190cd0544f2ea73…...
UnrealPakViewer终极指南:三步搞定虚幻引擎Pak文件深度解析
UnrealPakViewer终极指南:三步搞定虚幻引擎Pak文件深度解析 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具,支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer UnrealPakViewer是一款专为虚…...
Blender 3MF插件:从建模到3D打印的终极桥梁
Blender 3MF插件:从建模到3D打印的终极桥梁 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 在3D打印技术日益普及的今天,你是否曾为文件格式转换的…...
【IET出版】第十一届信息科学、计算机技术与交通运输国际学术会议(ISCTT 2026)
第十一届信息科学、计算机技术与交通运输国际学术会议(ISCTT 2026)将于2026年6月12-14日在中国昆明举行。 ISCTT 2026将围绕“信息科学”、"计算机技术”、“交通运输”等最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的…...
技术人的孤独:深夜Debug时的思考
——软件测试从业者的精神图鉴一、凌晨三点的独幕剧场屏幕冷光刺破黑暗,键盘敲击声在空旷办公室回荡。当世界沉入睡眠,测试工程师却深陷与Bug的无声博弈:物理空间的隔绝:无人协作的深夜,缺失即时反馈的对话机制&#x…...
监督学习(六):LightGBM实战优化技巧
1. LightGBM快速入门:为什么选择它? 第一次接触LightGBM是在处理一个电商用户行为预测项目时,当时数据集有300多万条记录,XGBoost跑一次要6小时,换成LightGBM后训练时间直接缩短到40分钟。这个经历让我彻底被它的效率征…...
Python自动化抓取Keep运动数据:从入门到实战
1. 为什么需要自动化抓取Keep运动数据 作为一个健身爱好者,我每天都会用Keep记录自己的运动数据。但时间久了发现一个问题:这些宝贵的数据都散落在App里,想做个长期分析特别麻烦。每次都要手动截图、复制粘贴,效率低不说ÿ…...
AIAgent价值对齐,你还在靠人工调参?SITS2026专家演示如何用动态价值锚定引擎(DVAE-2026)实现毫秒级对齐校验
第一章:SITS2026专家:AIAgent价值对齐问题 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,来自全球17个国家的AI安全研究者共同指出:当前AIAgent系统在目标分解、奖励建模与人类意图推断三个关键环节存在系统性…...
献县种植牙多少钱
在当今社会,牙齿缺失已经成为困扰很多人的问题,而种植牙凭借其美观、耐用、舒适等诸多优点,成为了越来越多人修复牙齿的首选。然而,种植牙的价格却让不少人望而却步。那么,种植牙究竟多少钱一颗呢?今天&…...
人工智能之数字生命-自我的4层12模块
一、根判定层 生命周期与边界控制模块 管待机、运行、收束、停止、死亡退出、降级运行。 世界/场景/状态刷新模块 刷新对象、场景、关系、当前值,形成“本轮可判定世界”。 服务值/安全值差额评估模块 统一计算服务差额与安全差额,给后续判断提供标尺。 根需求生成模块 从…...
