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

LeetCode - 852. 山脉数组的峰顶索引

题目

852. 山脉数组的峰顶索引 - 力扣(LeetCode)

思路

使用二分查找来定位峰顶

对于中间元素,比较它与其右侧元素的大小:

  • 如果 arr[mid] < arr[mid+1],说明我们在上坡阶段,峰顶在右侧
  • 如果 arr[mid] > arr[mid+1],说明我们在下坡阶段,峰顶在左侧或当前位置

不断缩小搜索范围,直到 left == right,此时指向的就是峰顶位置

时间复杂度和空间复杂度

时间复杂度:O(log n),符合题目要求

空间复杂度:O(1)

正确的写法

class Solution {
public:int peakIndexInMountainArray(vector<int>& arr) {int left = 0;int right = arr.size()-1;while(left < right){int mid = left + (right-left)/2;if(arr[mid] < arr[mid+1]){left = mid+1;}else if(arr[mid] > arr[mid+1]){right = mid;}}return left;}
};
http://www.xdnf.cn/news/14327.html

相关文章:

  • Salesforce 推出Marketing Cloud Next营销云
  • 【Tip】工具网站
  • comfyui插件和comfyui mac安装
  • 解决文明6 内存相关内容报错EXCEPTION_ACCESS_VIOLATION
  • uni-app项目实战笔记13--全屏页面的absolute定位布局和fit-content自适应内容宽度
  • volka烹饪常用英语
  • 基于stm32和多种传感器采集心脏数据监测系统
  • 2025年渗透测试面试题总结-浙江东岸检测[实习]安全工程师(题目+回答)
  • Qt下载比较慢
  • Linux 线程深度解析:从内存管理到线程控制的核心机制
  • 苍穹外卖--缓存菜品Spring Cache
  • 在docker中部署mysql
  • 论文略读: LAYERWISE RECURRENT ROUTER FOR MIXTURE-OF-EXPERTS
  • 实现回显服务器(基于UDP)
  • 【Linux系列】HEIC文件类型
  • 使用 vscode 开发 uni-app 项目时如何解决 manifest.json 文件注释报错的问题
  • 学习设计模式《十三》——迭代器模式
  • uniapp打包安卓和ios
  • 前端资源帖
  • JUC核心解析系列(二)——显式锁深度解析
  • Flink 与 Hive 深度集成
  • Qt .pro配置gcc相关命令(三):-W1、-L、-rpath和-rpath-link
  • 删除链表的倒数第N个结点
  • 系统架构设计师 2
  • 音频水印——PerTh Watermarker
  • 《Attention Is All You Need》解读
  • 佛山SAP本地化代理商和实施公司推荐,哪家更专业?
  • Emacs定制:文件管理dired
  • 为应对激烈竞争环境,IBMS系统如何提升企业管理效率
  • [Java恶补day24] 整理模板·考点三【二分查找】