852. 山脉数组的峰顶索引

文章访问量:

二分

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

虽然是中等题,但实际上就是遍历数组找最大值。

Go
func peakIndexInMountainArray(arr []int) int {
    max,index:=0,0
    for i:=0;i<len(arr);i++{
        if arr[i]>max{
            max,index=arr[i],i
        }
    }
    return index
}

直到我看到题目要求必须使用O(logn)的算法,那肯定是要二分了。不过太久没写都不知道自己写的算不算二分了。

Go
func peakIndexInMountainArray(arr []int) int {
    left,right:=0,len(arr)
    mid:=right/2
    for left<right{
        if arr[mid]>arr[mid-1]&&arr[mid]>arr[mid+1]{
            break
        }else if arr[mid]<arr[mid+1]{
            left=mid
        }else if arr[mid-1]>arr[mid]{
            right=mid
        }
        mid=(left+right)/2
    }
    return mid
}
Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x