您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 2浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode刷题Python】852. 山脉数组的峰顶索引

Better Bench 发布时间:2022-07-30 21:14:52 ,浏览量:2

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 leftarr[mid+1]:
                result = mid
                right = mid-1
            else:
                left = mid+1
        return result
关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0513s