【Leetcode刷题Python】852. 山脉数组的峰顶索引
2023-09-14 09:12:59 时间
1 题目
符合下列属性的数组 arr 称为 山脉数组 :
arr.length >= 3
存在 i(0 < i < arr.length - 1)使得:
arr[0] < arr[1] < … arr[i-1] < arr[i]
arr[i] > arr[i+1] > … > arr[arr.length - 1]
给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < arr[i] > arr[i + 1] > … > arr[arr.length - 1] 的下标 i 。
示例 1:
输入:arr = [0,1,0]
输出:1
示例 2:
输入:arr = [0,2,1,0]
输出:1
2 解析
用二分查找的话,时间复杂度是Log(n)。思路是
- 中间值大于后一个值的话,意思是已经爬坡过了峰值,那峰值一定在左边部分
- 中间值小于后一个值的话,还在爬坡,峰值在右部分
3 Python实现
class Solution:
def peakIndexInMountainArray(self, arr: List[int]) -> int:
left,right = 0,len(arr)-1
result = 0
while left<=right:
mid = (left+right)//2
if arr[mid]>arr[mid+1]:
result = mid
right = mid-1
else:
left = mid+1
return result
相关文章
- 在pycharm中如何新建Python文件?_github下载的python源码项目怎么用
- Python正则表达式,这一篇就够了!
- python实现矩阵的转置_Python实现矩阵转置的方法分析
- Python:whl文件是神?如何安装whl文件?
- python中sqrt函数用法_Python : sqrt() 函数
- python截图识别文字_Python文字截图识别OCR工具实例解析
- 详解Python中pyautogui库的最全使用方法
- python allure报告_Pytest+Allure 定制报告
- 【说站】Python+pyaudio实现音频控制示例详解
- 如何为pycharm配置Python解释器_anaconda3添加环境变量
- 遗传算法的应用实例python实现_遗传算法Python解决一个问题
- python读取图像的几种方法_python图像识别教程
- python udp编程_Python核心编程
- python语言关键字是_Python 关键字
- Windows10下python pip卸载并重新安装
- python判断文件后缀_Python 判断文件后缀是否被篡改
- Python将数据写入txt文件_python将内容写入txt文件
- Python自动化之Python循环语句
- 摘录一下Python列表和元组的学习笔记
- opencv(4.5.3)-python(十三)--平滑化图像
- Python 3.8 新运算符 := 让我们懒出新高度
- python多进程编程-死锁和递归锁(二)
- python-Python与SQLite数据库-处理SQLite查询结果(一)
- Python学习:6.python内置函数详解编程语言
- Linux上的Python之旅(linux自带python)
- Python驱动Oracle数据库(python操作oracle)
- Python玩转Redis:提升缓存效率(python使用redis)
- python用Redis与Python实现大数据收集与分析(redis 联合)
- python中使用OpenCV进行人脸检测的例子
- python实现的一个p2p文件传输实例
- Python中的自定义函数学习笔记