【优选算法必刷100题】第021-022题(二分查找):山峰数组的的峰顶索引、寻找峰值

【优选算法必刷100题】第021-022题(二分查找):山峰数组的的峰顶索引、寻找峰值

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

21. 山峰数组的的峰顶索引

解法(二分查找):

算法思路:

二分查找解法代码(C++):

22. 寻找峰值

解法(二分查找):

算法思路:

二分查找解法代码(C++):

总结:


前言:

聚焦算法题实战,系统讲解三大核心板块:“精准定位最优解”——优选算法,“简化逻辑表达,系统性探索与剪枝优化”——递归与回溯,“以局部最优换全局高效”——贪心算法,讲解思路与代码实现,帮助大家快速提升代码能力

二分查找专题


21. 山峰数组的的峰顶索引

题目链接:

852. 山脉数组的峰顶索引 - 力扣(LeetCode)

题目描述:

题目示例:

解法(二分查找):

这里暴力解法大家自己实现一下,我就不实现了

算法思路:

分析峰顶位置的数据特点,以及山峰两旁的数据的特点:

  • 峰顶数据特点:arr[ i ] > arr[ i-1 ] &&[ i ]>arr[ i+1 ]
  • 峰顶左边的数据特点:arr[ i ] > arr[i-1] && arr[ i ] < arr [ i+1 ],呈上升趋势
  • 峰顶右边数据的特点:arr[ i ] < arr[ i-1 ] && arr[ i ] > arr[ i+1 ],呈下降趋势

由此我们可以分为以下两种情况:

  • 如果 mid 位置的值小于 mid-1 位置的值 left=mid
  • 如果 mid 位置的值大于 mid-1 位置的值 right=mid-1

二分查找解法代码(C++):

class Solution { public: int peakIndexInMountainArray(vector<int>& arr) { int left=1,right=arr.size()-2; while(left<right) { int mid=left+(right-left+1)/2; if(arr[mid]>arr[mid-1]) left=mid; else right=mid-1; } return left; } };

22. 寻找峰值

题目链接:

162. 寻找峰值 - 力扣(LeetCode)

题目描述:

题目示例:

解法(二分查找):

算法思路:

判断二段性:任取一个点 i,与下一个点 i+1,会有如下两种情况:

  • arr[ i ] > arr[ i+1 ]:此时【左侧区域】一定会存在山峰(因为最左侧是负无穷),那么我们就可以去左侧寻找结果
  • arr[ i ] < arr[ i+1]:此时【右侧区域】一定会存在山峰(因为最右侧是负无穷),那么我们就可以去右侧寻找结果
点睛之笔:如果我们找到了二段性,就可以尝试用二分法解题了!

二分查找解法代码(C++):

class Solution { public: int findPeakElement(vector<int>& nums) { int left=0,right=nums.size()-1; while(left<right) { int mid=left+(right-left)/2; if(nums[mid]>nums[mid+1]) right=mid; else left=mid+1; } return left; } };

总结:

往期回顾:【优选算法必刷100题】第019-020题:x的平方根和搜索插入位置

Read more

只因一个高级词,作文被判“18% AI生成”!AI检测「荒诞现状」:写得太好=AI作弊,学生被逼“降智”写作

只因一个高级词,作文被判“18% AI生成”!AI检测「荒诞现状」:写得太好=AI作弊,学生被逼“降智”写作

【ZEEKLOG 编者按】当生成式 AI 迅速进入校园,许多学校的第一反应是部署各种“AI 检测工具”,试图用技术手段识别学生是否在作业中使用了 AI。然而,这种看似合理的做法,正在产生一些出乎意料的副作用:学生因为用词稍微“高级”一点就被判定为“AI生成”,优秀写作反而变成一种风险;为了避免被误判,一些原本不使用 AI 的学生开始主动学习和使用 AI 工具,只为“自证清白”。 原文链接:https://www.techdirt.com/2026/03/06/were-training-students-to-write-worse-to-prove-theyre-not-robots-and-its-pushing-them-to-use-more-ai/ 作者 | Mike Masnick      编译 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews)  大约一年半前,我写过一件发生在我孩子身上的事。 当时学校给每个学生发了一台 Chromebook,上面预装了一款 AI

By Ne0inhk
因AI“认错脸”,50岁的她坐了6个月牢:被当诈骗犯抓走,回来后房子、车子和狗全没了!

因AI“认错脸”,50岁的她坐了6个月牢:被当诈骗犯抓走,回来后房子、车子和狗全没了!

整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 如果有一天,你只是长得像某个人,就被 AI 认定为罪犯——然后被警方带走、关进监狱半年,你会怎么办? 最近,外媒曝光了一起离谱案件:一位来自美国田纳西州的 50 岁女性,仅仅因为 AI 人脸识别误判,被警方当作银行诈骗案的主犯逮捕,并在监狱里待了将近  6 个月。直到银行流水证明她当时根本不在案发地,检方才撤销全部指控。 然而,当她终于重获自由时,她的生活已经几乎被毁掉——房没了,车没了,甚至连她养的宠物狗也没了。 (Angela Lipps 事后接受媒体采访时的照片) 从没坐过飞机,却被押送 1200 英里受审 如开头所说,这位当事人名叫 Angela Lipps,今年 50 岁,住在美国田纳西州中北部。 她有三个已经成年的孩子,

By Ne0inhk
融资3000万美元,服务2000+团队!听Dify专家拆解如何把AI从Demo变生产力

融资3000万美元,服务2000+团队!听Dify专家拆解如何把AI从Demo变生产力

整理 | 梦依丹      出品 | ZEEKLOG(ID:ZEEKLOGnews) 近日,开源 AI 应用开发平台 Dify 宣布完成 3000 万美元 Pre-A 轮融资,由红杉领投,GL Ventures、Alt-Alpha Capital、五源资本、瑞穗力合投资和 NYX Ventures 跟投,目前公司估值已达 1.8 亿美元。 这家从“原型工具”杀出来的黑马,如今已服务全球超 140 万台设备、2000+ 团队和 280 家企业(包括马士基、安克创新等),正朝着“全球 AI 应用工作流标准定义者”狂奔。 那么,Dify 是如何用“

By Ne0inhk
【SpringCloud】注册中心 && 服务注册 && 服务发现 && Eureka

【SpringCloud】注册中心 && 服务注册 && 服务发现 && Eureka

文章目录 * Ⅰ. 背景 * 一、问题描述 * 二、注册中心 * 三、CAP理论 * 四、常见的注册中心 * ① Zookeeper * ② Eureka * ③ Nacos * CAP对比 * Ⅱ. Eureka介绍 * Ⅲ. 搭建EurekaServer * 一、创建Eureka-server子模块 * 二、引入eureka-server依赖 * 三、添加maven项目构建插件 * 四、完善启动类 * 五、编写配置文件 * 六、启动服务 * Ⅳ. 服务注册 * 一、引入eureka-client依赖 * 二、完善配置文件 * 三、启动服务 * Ⅴ. 服务发现 * 一、引入依赖 * 二、完善配置文件 * 三、远程调用 * 四、启动服务 * Ⅵ. Eureka和Zookeeper区别 Ⅰ. 背景 一、问题描述 上个章节的例子中可以看到,远程调用时,

By Ne0inhk