当前位置: 首页 > news >正文

面试150 寻找峰值

在这里插入图片描述

思路

暴力法,直接返回最大元素所在下标,因为找到了最大元素,两边的元素肯定小于等于它。

class Solution:def findPeakElement(self, nums: List[int]) -> int:return nums.index(max(nums))

二分法:在每次查找中,通过比较中间位置 mid 的元素与其右侧元素 nums[mid + 1] 的大小关系,判断峰值所在的方向。如果 nums[mid] > nums[mid + 1],说明峰值可能就在 mid 或其左侧,因此将搜索区间缩小为左半部分;反之,则说明峰值必定在右侧,缩小搜索范围为右半部分。不断缩小区间,最终会收敛到某个峰值元素的索引

class Solution:def findPeakElement(self, nums: List[int]) -> int:left, right = 0, len(nums) - 1while left < right:mid = (left + right) // 2if nums[mid] > nums[mid + 1]:right = midelse:left = mid + 1return left
http://www.dtcms.com/a/296754.html

相关文章:

  • Leetcode-.42接雨水
  • 【Linux基础知识系列】第六十四篇 - 了解Linux的硬件架构
  • 【学习】数字化车间与智能工厂如何推进制造业转型
  • 放款需要注意的事项
  • C++实战:人脸识别7大核心实例
  • 【Java】空指针(NullPointerException)异常深度攻坚:从底层原理到架构级防御,老司机的实战经验
  • 网络测试工具
  • UE 加载本地Json文件
  • 【Servo】裸机还是RTOS驱动架构如何选?
  • C++核心编程学习--对象特性--对象的初始化和清理
  • MCU(微控制器)中的高电平与低电平?
  • 基于LiteOS的OTA组件实现对终端固件的差分升级和全量升级
  • Rust与YOLO目标检测实战
  • 【redis其它面试问题】
  • 【OD机试】矩阵匹配
  • JavaScript高级特性与优化全解析
  • JManus Plan-Act模式:如何对用户的需求进行规划和执行
  • 【第五节】列表渲染
  • p5.js 椭圆的用法:从基础到创意应用
  • Java 实现 B/S 架构详解:从基础到实战,彻底掌握浏览器/服务器编程
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十九天-模拟面试前
  • 前端学习日记(十二)
  • MongoDB常用场景
  • jax study notes[19]
  • 【Kubernetes】通过 YAML 创建 nginx Pod 并验证,流程总结
  • Python编程进阶知识之第五课处理数据(matplotlib)
  • rust流程控制
  • Code Composer Studio:CCS 设置代码折叠
  • 20.OSPF路由协议·单区域
  • 枚举右,维护左高级篇