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

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;}
};

相关文章:

  • leetcode_128 最长连续序列
  • CKA考试知识点分享(16)---cri-dockerd
  • Seata与消息队列(如RocketMQ)如何实现最终一致性?
  • 关于凸轮的相位角计算
  • 在docker中部署dify
  • TryHackMe (THM) - SOC基础知识
  • slam--最小二乘问题--凹凸函数
  • Win10安装DockerDesktop踩坑记
  • C++斯特林数在C++中的数学理论与计算实现1
  • YOLOv8模型剪枝实战:DepGraph(依赖图)方法详解
  • Win系统权限提升篇AD内网域控NetLogonADCSPACKDCCVE漏洞
  • create_react_agent + MCP tools
  • synchronized和ReentrantLock的区别
  • 【论文阅读】Qwen2.5-VL Technical Report
  • Vue 3 九宫格抽奖系统,采用优雅的 UI 设计和流畅的动画效果
  • 打卡Day53
  • 在tensorrt engine中提高推理性能小记
  • 网络安全防护:Session攻击
  • 【python深度学习】Day53对抗生成网络
  • Vue3 + TypeScript + Element Plus 设置表格行背景颜色
  • 企业邮箱系统/系统优化的意义
  • 上海网站建设哪里好/营销网络推广方式有哪些
  • 简述上课网站建设所用的技术架构/什么网站推广比较好
  • 奥联网站建设/seo营销软件
  • 个人网站需要什么内容/百度官方版
  • 网站建设中 什么意思/seo专员是干什么的