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

【leetcode】852. 山脉数组的封顶索引

文章目录

    • 题目
    • 题解
      • 1. 遍历
      • 2. 二分查找

题目

852. 山脉数组的封顶索引

给定一个长度为 n 的整数 山脉 数组 arr ,其中的值递增到一个 峰值元素 然后递减。

返回峰值元素的下标。

你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。

示例 1:

输入:arr = [0,1,0]
输出:1

示例 2:

输入:arr = [0,2,1,0]
输出:1

示例 3:

输入:arr = [0,10,5,2]
输出:1

题解

1. 遍历

class Solution(object):def peakIndexInMountainArray(self, arr):""":type arr: List[int]:rtype: int"""for i in range(1, len(arr) -1):if arr[i] > arr[i + 1]:return ireturn False

2. 二分查找

class Solution(object):def peakIndexInMountainArray(self, arr):""":type arr: List[int]:rtype: int"""# 二分查找n = len(arr)left = 0right = n - 1ans = -1while left <= right:mid = (left + right) // 2if arr[mid] > arr[mid + 1]:ans = midright = mid - 1else:left = mid + 1return ans
http://www.lryc.cn/news/591222.html

相关文章:

  • React 18 vs Vue3:状态管理方案深度对比
  • 深入理解Map.Entry.comparingByValue()和Map.Entry.comparingByKey()
  • 我爱学算法之—— 前缀和(下)
  • 第十四章 gin基础
  • 深入理解React Hooks:从使用到原理
  • Qt CMake 学习文档
  • 【安卓按键精灵辅助工具】adb调试工具连接安卓模拟器异常处理
  • QT之openGL使用(二)
  • 端到端神经网络视频编解码器介绍
  • 电脑截图软件排行榜 Windows和mac电脑截图软件TOP10
  • 基于Rust游戏引擎实践(Game)
  • ZKmall开源商城架构助力增长:多端流量聚合与用户体验
  • Web3智能合约技术论述
  • NLP-文本预处理
  • centos 新加磁盘分区动态扩容
  • 什么是 M4A 和 WAV?这两种音频互转会导致音质发生变化吗
  • PySide笔记之信号连接信号
  • 解锁 iOS 按键精灵辅助工具自动化新可能:iOSElement.Click 让元素交互更简单
  • 初识 二叉树
  • iOS 构建配置与 AdHoc 打包说明
  • 设计模式四:装饰模式(Decorator Pattern)
  • 拿到安全工程师证后,能从事哪些岗位?
  • 十六进制与嵌入式系统及通信系统
  • 量化环节剖析
  • 暑期自学嵌入式——Day05(C语言阶段)
  • Oracle Data Pump 导入冲突解决
  • 九学王资源apk应用名称整理
  • 从平面到时空:地图故事的时空叙事与沉浸式阅读
  • 从单线程到云原生:Redis 二十年演进全景与内在机理深剖
  • Spring之【BeanDefinition】