剑指 Offer II 069. 山峰数组的顶部模拟 / 二分
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer II 069. 山峰数组的顶部模拟 / 二分相关的知识,希望对你有一定的参考价值。
https://leetcode-cn.com/problems/B1IidL/
O(n)的方法
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr)
{
int n=arr.size()-1;
int ans=0;
for(int i=1;i<=n-1;i++)
{
if(arr[i]>arr[i-1]&&arr[i]>arr[i+1]) ans=i;
}
if(arr[0]>arr[1]) ans=0;
if(arr[n]>arr[n-1]) ans=n;
return ans;
}
};
二分解法:
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr)
{
int l=0,r=arr.size()-1;
while(l<r)
{
int mid=l+r+1>>1;
if(arr[mid]<arr[mid+1]) l=mid;
else r=mid-1;
}
return l+1;
}
};
以上是关于剑指 Offer II 069. 山峰数组的顶部模拟 / 二分的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode剑指 Offer II 069. 山峰数组的顶部(C++)
剑指 Offer II 069. 山峰数组的顶部模拟 / 二分
LeetCode 剑指 Offer II 069. 山峰数组的顶部(三分) / 38. 外观数列 / 282. 给表达式添加运算符
剑指Offer II 069 山峰数组的顶部[二分法] HERODING的LeetCode之路