#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[200005],maxx,b,f,s;
map<int,int>mp;
signed main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
f=1,b=2,mp[a[1]]=1;
while(b<=n){
if(mp[a[b]]==1){
while(a[f]!=a[b]) mp[a[++f]]=0;
}
// cout<<f<<" "<<b<<endl;
mp[a[b]]=1,maxx=max(b-f+1,maxx),b++;
// for(int i=1;i<=3;i++) cout<<mp[i]<<" ";
// cout<<endl;
}
cout<<maxx;
return 0;
}
现样例过, \color{red}{WA10} 。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[200005],maxx,b,f,s;
map<int,int>mp;
signed main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
f=1,b=2,mp[a[1]]=1;
while(b<=n){
if(mp[a[b]]==1){
while(a[f]!=a[b]) mp[a[++f]]=0;
f++;
}
// cout<<f<<" "<<b<<endl;
mp[a[b]]=1,maxx=max(b-f+1,maxx),b++;
// for(int i=1;i<=3;i++) cout<<mp[i]<<" ";
// cout<<endl;
}
cout<<maxx;
return 0;
}
可以说明下原因,还有这种可以发在智灵班里面