【LeetCode:162. 寻找峰值 | 二分】

2023-12-18

在这里插入图片描述

???? 算法题 ????

???? 算法刷题专栏 | 面试必备算法 | 面试高频算法 ????
???? 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
???? 作者简介:硕风和炜,CSDN-Java领域新星创作者????,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享????????????
???? 恭喜你发现一枚宝藏博主,赶快收入囊中吧????
???? 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?????????

???? 算法题 ????

在这里插入图片描述

在这里插入图片描述

???? 题目链接

  • 162. 寻找峰值

⛲ 题目描述

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

给你一个整数数组 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]
输出:1 或 5
解释:你的函数可以返回索引 1,其峰值元素为 2;
或者返回索引 5, 其峰值元素为 6。

提示:

1 <= nums.length <= 1000
-231 <= nums[i] <= 231 - 1
对于所有有效的 i 都有 nums[i] != nums[i + 1]

???? 求解思路&实现代码&运行结果


⚡ 二分

???? 求解思路
  1. 首先题目给定我们要求,使用log(n)的时间复杂度求解。
  2. 因为题目让我们找到的是任意一个峰值,并不是最大的,或者是最小的,那么我们使用二分就没有问题了。
  3. 为什么使用二分呢?首先,如果当前找到的数是大于下一个元素的,那么此时二分右边界左移,反之,二分左边界向右移动。最终找到我们的峰值并返回。
  4. 实现代码如下所示:
???? 实现代码 - 二分
class Solution {
    public int findPeakElement(int[] nums) {
        int left=-1,right=nums.length-1;
        while(left+1<right){
            int mid=left+right>>1;
            if(nums[mid+1]<nums[mid]){
                right=mid;
            }else{
                left=mid;
            }
        }
        return right;
    }
}
???? 运行结果

在这里插入图片描述


???? 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【LeetCode:162. 寻找峰值 | 二分】 的相关文章

随机推荐

  • Java反序列化漏洞-CC1利用链分析

    文章目录 一 前置知识 1 反射 2 Commons Collections是什么 3 环境准备 二 分析利用链 1 Transform
  • MAX31865硬件和程序攻坚

    MAX31865硬件和程序攻坚 中文数据手册 STM32H库与工程文件创建 模块硬件部分 温度数据准确性 中文数据手册 MAX31865中文手册可以看这个博主挂上的文章 总结 STM32F103C8T6通过MAX31865读取PT100电阻
  • 牛客练习赛68 A.牛牛的mex(排列的mex性质)

    题意 解法 对于一个排列 区间 l r 的mex等于区间外所有数的最小值 因此我们计算min min 1 l 1 min r 1 n 就是答案 预处理前缀min和后缀min即可 Code include
  • Ceph入门到精通- smartctl -l error检查硬盘指标

    smartctl l error 是一个 Linux 命令 用于查看磁盘驱动器的 SMART Self Monitoring Analysis and Reporting Technology 错误日志 SMART 是一种技术 能够监测硬盘
  • 基于循环神经网络长短时记忆(RNN-LSTM)的大豆土壤水分预测模型的建立

    Development of a Soil Moisture Prediction Model Based on Recurrent Neural Network Long Short Term Memory in Soybean Cult
  • 【Spring】10 BeanFactoryAware 接口

    文章目录 1 简介 2 作用 3 使用 3 1 创建并实现接口 3 2 配置 Bean 信息
  • 【华为数据之道学习笔记】5-6非结构化数据入湖

    1 非结构化数据管理的范围 非结构化数据包括无格式的文本 各类格式的文档 图像 音频 视频等多样异构的格式文件 相较于结构化数据 非结构化数据更难以标准化和理解 因而非结构化数据的管理不仅包括文件本身 而且包括对文件的描述属性 也就是非结构
  • 大事件项目07----10,11,12未录

    1 如果三方jar包对应的对象 2 来自第三方 是无法用 Component及衍生注解生命bean的 3 使用Maven命令 引入jar包 4 这里我们准备了jar包 也提前准备好了jar包的脚本 5 通过本地的方式来安装maven的坐标
  • FFmpeg转码流程和常见概念

    视频格式 mkv flv mov wmv avi mp4 m3u8 ts等等 FFmpeg的转码工具 它的处理流程是这样的 从输入源获得原始的音视频数据 解封装得到压缩封装的音视频包 对音视频包进行解码 得到原始的音视频帧 对原始音视频帧进
  • 20231216配置AIO-3399J【RK3399】的开发板的Android11的编译环境

    20231216配置AIO 3399J RK3399 的开发板的Android11的编译环境 2023 12 16 23 21 开发板 Firefly的AIO 3399J RK3399 SDK rk3399 android 11 r2021
  • python趣味编程-使用 Python 的 Tron 游戏(多人游戏)

    使用 Python 的 Tron 游戏 多人游戏 和免费源代码 带有源代码的Tron Game 多人游戏 是一款多人游戏 您的目标是创建更长的线 你只需要小心移动 tron 车辆即可 该项目的目的是为您的亲戚和朋友提供一些娱乐因素 关于该项
  • python趣味编程-Python 医院管理系统项目

    项目名称 医院管理系统 医院 管理系统 源码是一个可以安排医生预约的Python程序 该系统的唯一目的是整理患者数据并方便医生和患者进行预约会议 该程序仅使用 Python语言 开发 该项目是一个控制台应用程序 您可以通过输入某些数字键进行
  • NXP应用随记(五):eMios功能点阅读随记

    目录 1 概念点 2 eMios功能点 2 1 eMIOS Single Action Input Capture SAIC 2 2 eMIOS Single Action Output Compare SAOC 2 3 eMIOS Dou
  • 题解 | #火车进站#

    解约的同学看过来 提供一份解约思路 题解 火车进站 include
  • JAVA 版多商家入驻 直播带货 商城系统 B2B2C 之 鸿鹄云商B2B2C产品概述

    一 产品简介 我们的JAVA版多商家入驻直播带货商城系统是一款全 面的电子商务平台 它允许商家和消费者在一个集成的环境中进行互动 系统采用先进的JAVA语言开发 提供多商家入驻 直播带货 B2B2C等多种功能 帮助用户实现线上线下的无缝对接
  • 产教融合经验 | 赛宁与高校多年磨合出的育人之道

    12月14日 2023 年江苏省网络安全发展大会于无锡成功举办 会议设置主旨报告和圆桌对话环节 邀请与会嘉宾围绕打造高质量网安人才培养生态以及产学研用融合发展 从不同角度进行了深入研讨 作为国家级高新技术企业 国家级专精特新 小巨人 企业和
  • 题解 | #火车进站#

    解约的同学看过来 提供一份解约思路 题解 火车进站 include
  • 聊聊刻意练习-天才并不存在

    这是鼎叔的第八十二篇原创文章 行业大牛和刚毕业的小白 都可以进来聊聊 欢迎关注本专栏和微信公众号 敏捷测试转型 星标收藏 大量原创思考文章陆续推出 本人新书 无测试组织 测试团队的敏捷转型 已出版 机械工业出版社 各大电商平台热销中 30万
  • 题解 | #平均活跃天数和月活人数#

    金融科技岗分享 欢聚shopline 凉 又遇毁到offer 爱奇艺互动产品运营实习面经 百度大搜2024校招补录 搜索时效性团队工作职责 1 通过query理解 召回 排序全链路的优化 持续优化百度搜索时效排序效果2 持续探索落地最前沿的
  • 【LeetCode:162. 寻找峰值 | 二分】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题