恶作剧
先来看看要求,能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; }