#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10;
typedef pair<int,int> pa;
int a[N];
pa b[N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
//去掉相邻的相同的柱子 这样就可以分情况讨论了
n=unique(a+1,a+n+1)-a-1;
a[n+1]=0;//后边可能会用到,需要清空 (这里还保留着原来的n+1位置的值)
for(int i=1;i<=n;i++) b[i]={a[i],i};
sort(b+1,b+n+1);
int ans=1,now=1;
for(int i=1;i<=n;i++)
{
int k=b[i].second;
if(a[k]>a[k-1]&&a[k]>a[k+1]) --now;
else if(a[k]<a[k-1]&&a[k]<a[k+1]) ++now;
if(b[i].first!=b[i+1].first) ans=max(ans,now);
}
cout<<ans<<endl;
return 0;
}
岛(离散化)
最新推荐文章于 2024-06-01 11:10:42 发布