|
| ![]() |
Problem descriptions:
|
#include"iostream"
#include"cstring"
#include"math.h"
#include"cstdio"
#include"map"
#include"set"
#include"algorithm"
using namespace std;
typedef long long ll;
ll a[1000000+20];
int main()
{
int T;
cin>>T;
while(T--)
{
set<ll>Set;
map<ll,int>Map;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
int right=1,left=1;
int sum=0;
int ans=-1;
while(right<=n)
{
if(Set.count(a[right])==0) //当这个元素没有出现过 继续向右扩展
Set.insert(a[right++]);
else //出现过了左边的元素删除
Set.erase(a[left++]);
ans=max(ans,right-left); //每次都是满足的 所以一直都在比较
}
cout<<ans<<endl;
}
return 0;
}