Leetcode162. 寻找峰值

【中等】力扣算法题解析LeetCode162:寻找峰值 这篇题解介绍了如何在整数数组中寻找峰值元素的问题。给定一个整数数组,找到任意一个峰值元素(严格大于相邻元素)的索引。要求时间复杂度为O(log n)。 解题思路:使用二分查找算法,通过比较中间元素与其右侧元素的值来决定搜索方向。若中间元素小于右侧元素,说明峰值在右侧;否则可能在左侧或当前元素即为峰值。 阅读详情

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

题解:

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

代码如下:

class Solution {
    public int findPeakElement(int[] nums) {
        int left = 0, right = nums.length - 1;
        while(left < right) {
            int mid =  left + (right - left) / 2;
            //因为索引-1为负无穷,所以左侧肯定有峰值,最坏的情况是在索引0是峰值
            if(nums[mid] > nums[mid+1]){
                right = mid;//mid可能是峰值所以没有mid-1
            }
            //同理右侧可能有峰值
            else{
                left = mid + 1;
            }
        }
        return left;

    }
}

 

【Leetcode】162.寻找峰值 二分法找峰值 阅读详情

相关推荐

【遥感数字图像处理(朱文泉)】各章博文链接汇总及思维导图

遥感数字图像处理(北京师范大学朱文泉教授)课程各章博文笔记汇总,及各章节思维导图

甜子yu的博客 2621

力扣 LeetCode 162. 寻找峰值

题目要求返回任意一个峰值即可。

qq_61504864的博客 375

【Agora 本地录制最全总结- 基于Java SDK】

Agora 本地服务端录制

lizhengze1117的博客 1790

leetcode 162 寻找峰值

162 寻找峰值 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素, 示例 2: 输入...

求知若饥,谦卑若愚 259

无网络环境部署:手动获取并安装OneNote for Windows 10完整指南

本文提供了一份详尽的OneNote for Windows 10离线安装指南。针对无网络或内网隔离环境,详细介绍了如何从官方渠道获取正确的产品ID,利用第三方工具下载纯净的.appxbundle安装包,并解决系统兼容性与依赖框架问题。最后,通过PowerShell管理员命令完成安全部署,是IT管理员和高级用户在离线环境下部署UWP应用的实用参考。

loss4bartender的博客 495

TC397 EB配置ADC软件触发:从零实现周期采样与中断处理

本文详细介绍了如何在Infineon AURIX TC397芯片上使用EB Tresos工具配置ADC软件触发,实现周期采样与中断处理。通过硬件连接、EB模块配置、代码初始化及数据处理的全流程解析,帮助开发者快速掌握ADC软件触发技术,提升嵌入式系统开发效率。

root9的博客 229

leetcode 力扣 162.寻找峰值

题目: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2。 示例 2: 输入:nums = [1,2,1,3,5,6,4] 输出: 1 或 5 解释: 你的函数可

LifeGoesOn 321

Adams中AKISPL和DX函数的妙用:打造精准的非线性衬套模型

本文深入探讨了在Adams动力学软件中,如何巧妙运用AKISPL插值函数与DX等位移测量函数,构建高精度的非线性衬套模型。文章通过实战案例,详细解析了从单轴非线性刚度到完整六自由度耦合模型的实现步骤与调试技巧,帮助工程师将复杂的实验或有限元数据转化为可靠的多体动力学仿真模型,有效提升系统仿真置信度。

sky77的博客 317

【LeetCode题解】LeetCode 162. 寻找峰值

函数,它直接定义了“如何根据中间位置的特征,判断下一阶段的搜索方向”。由于每道题的场景逻辑不同,真正的破题点永远是 结合问题条件,分析区间的“可二分性”,而非机械套用模板。二分算法的两类模板需要熟练掌握,但核心关键在于设计合理的。(即使数组严格递增,最后一个元素因右侧是。严格递减则第一个元素因左侧是。核心逻辑是:通过比较中间位置。这一条件至关重要:它保证了。的元素,且题目给定边界条件。由于要求时间复杂度为。

weixin_53552267的博客 841

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片和三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用和软件复杂度问题。通过原理分析、电路设计拆解和实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能和可靠性。

weixin_26833939的博客 509

华为OD机试真题:明日之星选举 (Java/Py/C/ C++/JS/GO)

华为OD机试(机考)双机位C卷 【明日之星选举】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 明日之星选举。

qq_45776114的博客 919

LeetCode(力扣) 162. 寻找峰值

二分法解决 LeetCode(力扣) 162. 寻找峰值

qq_56048661的博客 475

【嘉立创EDA】PCB金属包边设计快捷方法

本文使用嘉立创EDA,描述如何在PCB设计时,快速增加边框包边设计,特别是金属包边(伪)——这里标记(伪)是因为该这里的包边特指不含边缘壁。请参考本文时特别注意!本文将此过程记录,以供有需要的读者参考。

l64481000的博客 1730

leetcode 162. 寻找峰值

162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2。 示例 2: 输入: nums = [1,2,1,3,5,6,4] 输出: 1 或 5 解释: 你的函

Qin_酱的博客 310

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LeetCode 162. 寻找峰值

更多题解尽在每日更新。组队打卡,更多解法等你一起来参与哦!,难度。

m0_64381458的博客 244

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Leetcode 162. 寻找峰值 C++

Leetcode 162. 寻找峰值 题目 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 测试样例 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2。 示例 2: 输入: nums = [1,2,1,3,5,6,4]

weixin_43750513的博客 323

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Leetcode—162.寻找峰值【中等】

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 500

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

black_bear_white的博客 498

【leetcode】162. 寻找峰值

.峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-peak-e...

Gin.TaMa的博客 198

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

题目描述 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2。...

Onwaier的博客 468

Leetcode162 寻找峰值,C++,Java,Python

Leetcode162 寻找峰值 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-peak-element/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元...

Rp的博客 698

LeetCode162. 寻找峰值

LeetCode162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O(log n) 的算法来解决此问题。 示例 1: 输入:nums = [1,2,3,1] 输出:2 解释:3 是峰值元素,你的函数应该返回其索引 2。 示例 2: 输入:nums = [1,2,1,3,5,6,4]

yikeshouliudan的博客 327

力扣 LeetCode - 162. 寻找峰值

162. 寻找峰值 题目: 峰值元素是指其值大于左右相邻值的元素。 给你一个输入数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设nums[-1] = nums[n] = -∞ 。 示例 1: 输入:nums = [1,2,3,1] 输出:2 解释:3 是峰值元素,你的函数应该返回其索引 2。 示例2: 输入:nums = [1,2,1,3,5,6,4] 输出:1 或 5 解释:你的函数可以返回索引 1,...

qq_35546113的博客 262

LeetCode第162题—寻找峰值—Python实现

title: LeetCode No.162 categories: OJ LeetCode tags: Programing LeetCode OJ LeetCode第162题—寻找峰值 前几天老忘了更新,我错了。QAQ 最新研究一下VSCode刷LeetCode好方便好舒服。 自己代码的开源仓库:click here 欢迎Star和Fork ???? 题目描述 峰值元素是指其值大于左右相邻值的元素。 给你一个输入数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返

StriveZs'Blog 628

LeetCode第162题 - 寻找峰值

LeetCode第162题 - 寻找峰值

流水账 1195

LeetCode第162题_寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回所在位置即可。你可以假设,并且对于所有有效的i都有。换句话说,相邻元素的值都不相等。你必须实现时间复杂度为O(log n)的算法来解决此问题。

qq_40263592的博客 881
上一篇: Leetcode160. 相交链表
下一篇: Leetcode165. 比较版本号
魑魅魍魉114
博客等级 码龄10年 165粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值