山峰数组的顶峰

题目描述

在这里插入图片描述

题目分析

比较容易想到O(n)的做法,即遍历一遍数组找最大值所在位置的方法,更快的方法应当使用二分法进行寻找,最快可在O(logn)的范围中找到。

  1. 使用l,r指针分别指向第一个和最后一个,mid指向中间
  2. 判断arr[mid]和arr[mid-1],arr[mid+1]的关系,如果arr[mid-1]>arr[mid],说明mid点不是山峰数组的最高点,最高点应当在mid点的左侧,此时让r=mid-1。反之亦然
  3. 当l-r==1时,也就是只剩下两个时,输出较大的,否则会错过。

参考代码

class Solution {
   
public:
    int peakIndexInMountainArray
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值