题解 | #牛牛的数列#

牛牛的数列

https://ac.nowcoder.com/acm/problem/13134

using namespace std;

int n;
const int MAXN=1e5+10;
int l[MAXN];
int r[MAXN];
int a[MAXN];
bool tr=false;
int ans=0;
int main()
{
    scanf("%d",&n);
    int ans=1;
    for(int i=1;i<=n;i++) cin>>a[i];
    l[1]=0;
    int p=0;
    for(int i=2;i<=n;i++)
    {
        if(a[i]>a[i-1]) 
        {
            l[i]=++p;
        }
        else 
        {
            l[i]=++p;
            p=0;
        }
        ans=max(ans,l[i]);
    }
    r[n]=0;
    p=0;
    for(int i=n-1;i>=1;i--)
    {
        if(a[i]<a[i+1]) r[i]=++p;
        else 
        {
            r[i]=++p;
            p=0;
        }
        ans=max(ans,r[i]);
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i+1]>a[i-1])
            ans=max(ans,l[i]+r[i]+1);
        else ans=max(ans,max(l[i]+1,r[i]+1));
    }
//     for(int i=1;i<=n;i++)
//         cout<<i<<" "<<l[i]<<" "<<r[i]<<endl;
//     cout<<endl;
    cout<<ans;
}
全部评论

相关推荐

02-26 13:56
已编辑
重庆财经学院 Java
King987:你有实习经历,但是写的也太简单了,这肯定是不行的,你主要要包装实习经历这一块,看我的作品,你自己包装一下吧,或者发我,我给你出一期作品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务