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

LeetCode讲解篇之852. 山脉数组的峰顶索引

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

我们可以采用二分查找,每次查询区间中点元素与中点下一个元素比较

  • 如果中点元素大于其下一个元素,则表示从中点开始向右是递减趋势,那峰值索引一定小于等于中点,我们可以舍弃中点元素后面的区间
  • 如果中点元素小于其下一个元素,则表示从中点开始向右是递增趋势,那峰值一定大于中点,我们舍弃中点即中点前面的区间

题解代码

func peakIndexInMountainArray(arr []int) int {l, r := 0, len(arr) - 1ans := 0for l <= r {m := (l + r) >> 1if arr[m] > arr[m + 1] { // m + 1不可能越界,只有当arr元素从左到右不递减才会使m + 1越界,但是题目中说了保证arr是山脉数组,也就是数组元素是先上升后下降的// 递减趋势,说明峰顶索引小于等于mans = mr = m - 1} else {// 递增趋势,说明峰顶索引大于等于m + 1l = m + 1}}return ans
}

题目链接

https://leetcode.cn/problems/peak-index-in-a-mountain-array/description/

http://www.lryc.cn/news/456278.html

相关文章:

  • 矿井人员数据集,用于目标检测,深度学习,采用txt打标签,即yolo格式,也有原文件可以自己转换。总共3500张图片的数据量,划分给训练集2446张,
  • 消息队列RabbitMQ
  • RabbitMQ概述
  • Golang学习路线
  • Flink从ck拉起任务脚本
  • GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection
  • 某象异形滑块99%准确率方案
  • CDN绕过学习
  • SpringBoot日常:redission的接入使用和源码解析
  • npm包管理深度探索:从基础到进阶全面教程!
  • 最新免费GPT4O和Midjourney
  • python操作OpenAI教程
  • 如何版本REST API:综合指南
  • Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南
  • 网络安全-IPv4和IPv6的区别
  • 【移动端】事件基础
  • 软件测试比赛-学习
  • 力扣LeetCode-链表中的循环与递归使用
  • AFSim仿真系统 --- 系统简解_08 传感器与特征
  • 已经安装了qt,想添加mingw组件,包含gcc等
  • 数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)
  • 信号用wire类型还是reg类型定义
  • 与鸿蒙同行,Java Solon v3.0 正式发布(向下兼容)
  • 数据驱动投资:AI在股票市场的应用
  • Tita使用小技巧:项目类型自定义,业务管理个性化
  • 国药准字:您购药的可靠指南
  • Python类学习(2)——未完待续
  • 微前端框架 qiankun 全面解析到源码实现
  • 初始化数据的正确方式?
  • Flutter平台嵌入器