力扣——寻找峰值

server/2024/11/23 18:48:40/

题目

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

思路

第一想法就是直接遍历,时间复杂度为O(n),肯定超时了。

然后就想到用二分,但是数组又不一定是有序的。仔细一思考,好像也可以用,关键在于这个峰值的性质。
按照题目当中的条件,数组当中总有一个峰值,传统二分查找依赖数组的全局有序性,而这里利用的是峰值的局部性。

  • 如果 nums[mid] < nums[mid + 1]

    • 峰值一定在右侧:
      • 如果右侧某段存在上升趋势,最终会遇到一个峰值或数组的末尾(nums[n] = -∞)。
      • 右侧包含可能的峰值,因此缩小范围到 [mid + 1, high]
  • 如果 nums[mid] > nums[mid + 1]

    • 峰值可能是 mid 或在左侧:
      • 左侧包含可能的峰值,因此缩小范围到 [low, mid]

代码

public int findPeakElement(int[] nums) {int low = 0, high = nums.length-1;while(low<high){int mid = (low + high)/2;if(nums[mid]<nums[mid+1]){low = mid+1;}else{high = mid;}}return low;}


http://www.ppmy.cn/server/144328.html

相关文章

AG32既可以做MCU,也可以仅当CPLD使用

Question: AHB总线上的所有外设都需要像ADC一样&#xff0c;通过cpld处理之后才能使用? Reply: 不用。 除了ADC外&#xff0c;其他都是 mcu可以直接配置使用的。 Question: DMA和CMP也不用? Reply: DMA不用。 ADC/DAC/CMP 用。 CMP 其实配置好后&#xff0c;可以直…

解决——CPN IDE卡在启动画面中 initializing状态

安装好软件后启动一直卡在这个状态&#xff01;&#xff01;&#xff01;看后台内存也没有问题&#xff01;&#xff01;&#xff01; 解决方法&#xff1a; 你看到了什么&#xff1f; CPN IDE启动了&#xff0c;但前端卡在启动画面中。后端确实启动了&#xff0c;命令提示符…

23种设计模式-模板方法(Template Method)设计模式

文章目录 一.什么是模板方法模式&#xff1f;二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图&#xff1a; 模板方法设计模式类图 一.什么是模板方法模…

大数据基于Spring Boot的化妆品推荐系统的设计与实现

摘 要 随着大数据时代的到来&#xff0c;人们对于个性化服务的需求越来越高。化妆品推荐系统作为一个认知智能模型段&#xff0c;在为消费者提供更好的购物体验方面发挥了重要作用。本研究基于大数据技术设计了一个高效准确的化妆品推荐系统。通过对海量数据的分析和处理&…

Spark使用过程中的 15 个常见问题、详细解决方案

目录 问题 1&#xff1a;Spark 作业超时问题描述解决方案Python 实现 问题 2&#xff1a;内存溢出问题描述解决方案Python 实现 问题 3&#xff1a;Shuffle 性能问题问题描述解决方案Python 实现 问题 4&#xff1a;Spark 作业调度不均问题描述解决方案Python 实现 问题 5&…

springboot:责任链模式实现多级校验

责任链模式是将链中的每一个节点看作是一个对象&#xff0c;每个节点处理的请求不同&#xff0c;且内部自动维护一个下一节点对象。 当一个请求从链式的首段发出时&#xff0c;会沿着链的路径依此传递给每一个节点对象&#xff0c;直至有对象处理这个请求为止。 属于行为型模式…

如何不使用密码,通过ssh直接登录服务器

在 Mac 上生成 SSH 密钥&#xff08;如果尚未生成&#xff09; 如果你还没有生成密钥&#xff0c;可以按照以下步骤在终端中生成 SSH 密钥对&#xff1a; 打开终端&#xff0c;执行命令&#xff1a; bash ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" …

金融量化交易模型的探索与发展

随着全球金融市场的不断变化与技术进步&#xff0c;量化交易逐渐成为机构和个人投资者的重要选择。作为数据驱动的交易方式&#xff0c;量化交易通过科学建模和技术手段&#xff0c;有效提升了交易效率与决策精准度。本文将探讨金融量化交易模型的创新探索与未来发展方向。 量化…