news 2026/8/21 9:20:00

寻找峰值--优选算法(二分查找法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
寻找峰值--优选算法(二分查找法)

一.网页直达

https://leetcode.cn/problems/find-peak-element

二.题目解析

解析:

题目上给出的时间复杂度就暗示我们需要使用二分算法,我们发现相邻位置没有相同的数字.

我们先来想暴力解法:遍历数组,利用单调性的变化来判断是否是峰值,或者是单调不变的那峰值就是第一个数或者是最后一个数.(一共三种情况),时间复杂度就是O(N)

我们抽象出一个模型出来,找到二段性,使用二分查找.

情况一就是arr[mid]>arr[mid+1],说明结果一定在二段性的左边.while更新右边区间right=mid,继续寻找峰值.

情况二:就是arr[mid]<arr[mid+1],说明结果一定在二段性的右边.while更新左边区间left=mid+1,继续寻找峰值.

代码实现:

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; } };

二分法不是只在单调区间里面的,只需要找到二段性,就可以使用.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 11:21:29

数美CTO梁堃:从人机对抗到智能进化,AI风控的下半场

本文转自《甲子光年》&#xff0c;作者王艺多2015 年&#xff0c;当移动互联网的流量红利见顶&#xff0c;黑灰产还停留在利用“按键精灵”和“群控设备”进行粗糙薅羊毛的阶段。十年过去&#xff0c;当我们站在 2025 年的门槛上回望&#xff0c;会发现那只是风控历史上的冷兵器…

作者头像 李华
网站建设 2026/8/21 4:11:37

【YOLO-Ultralytics】 EMA模型和普通模型的区别

【YOLO-Ultralytics】 EMA模型和普通模型的区别 文章目录【YOLO-Ultralytics】 EMA模型和普通模型的区别前言核心定义权重更新方式&#xff08;核心差异&#xff09;1. 普通模型的更新逻辑2. EMA模型的更新逻辑关键特性对比&#xff08;结合YOLO训练场景&#xff09;应用场景总…

作者头像 李华
网站建设 2026/8/20 10:49:15

46、Linux 服务器远程管理与拨号配置全攻略

Linux 服务器远程管理与拨号配置全攻略 1. 服务器拨号管理配置 1.1 问题提出 当你想从家中或其他异地位置通过远程串口控制台对服务器进行远程管理时,就需要对服务器进行拨号管理设置。前提是你已经安装好合适的硬件控制调制解调器(内部或外部),并且服务器已启用串口管理…

作者头像 李华