恶作剧

 

 

 

 

 

 先来看看要求,能100%还原那么什么情况能只有一种还原方式呢?那就是上下限已定,差值为一的情况下(还有个递增,但题目数据给了递增所以没写)像1**4只有1234一种改法那么题目变为在数组中找连续的差值为1的数列截头去尾(因为要有上下限)的长度。(记得取max)

程序:

#include<bits/stdc++.h> 
using namespace std;
const int MAXN=1e4;
int n;
int a[MAXN];
int main()
{
    ios::sync_with_stdio(false);
    cin>>n;
    a[0]=0,a[n+1]=1001;
    for(int i=1;i<=n;i++) cin>>a[i];
    int ans=0;
    for(int i=0;i<=n+1;i++)
    {
        int j=i+1;
        while(j<=n+1&&a[j]==a[j-1]+1) j++;
        ans=max(ans,j-i-2);
        i=j-1;
    }
    cout<<ans;
    return 0;
}

 

posted @ 2023-03-26 21:40  王浩泽  阅读(18)  评论(0编辑  收藏  举报