滑动窗口问题
题目:https://uva.onlinejudge.org/external/115/11572.pdf
比较简单 自己体会
#include <iostream>
#include <cstdio>
#include <set>
using namespace std;
int main(){
int CASE,n,a[1000005];
scanf("%d",&CASE);
while (CASE--) {
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
set<int> s;
int L=0,R=0,ans=0;
while (R<n) {
while (R<n && !s.count(a[R])) {s.insert(a[R++]);}
ans=max(ans,R-L);
s.erase(a[L++]);
}
printf("%d\n",ans);
}
return 0;
}