手动写一下试一下
#include<bits/stdc++.h>
using namespace std;
int main()
{
int A[1000],B[1000],C[1000];
int n,ant=0,ans=1;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>A[i];
}
for(int i=1;i<=n;i++)
{
if(A[i]>A[i-1])
{
ant+=1;
B[i]=ant;
if(i!=n)
ans=max(ans,B[i]+1);
else
ans=max(ans,B[i]);
}
else
{
B[i]=1;
ant=1;
}
}
ant=0;
for(int i=n;i>=1;i--)
{
if(A[i]<A[i+1])
{
ant+=1;
C[i]=ant;
if(i!=n)
ans=max(ans,C[i]+1);
else
ans=max(ans,C[i]);
}
else
{
C[i]=1;
ant=1;
}
}
for(int i=1;i<=n;i++)
{
if(A[i+1]-A[i-1]>1)
ans=max(ans,B[i-1]+C[i+1]+1);
}cout<<ans<<endl;
} 自己写几个数试一下就能出来。
查看20道真题和解析