求交一下,谢谢!
查看原帖
求交一下,谢谢!
817984
wzq100205楼主2025/8/29 15:00
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
typedef long long ll;
int q[MAXN],a[MAXN],cnt[MAXN];
int main(){
//	freopen("test.txt","r",stdin);
	int T,n;
	cin>>T;
	while(T--){
		scanf("%d",&n);
		for(int i=0;i<n;i++){
			scanf("%d",q+i);
			a[i]=q[i];
			cnt[i]=0;
		}
		sort(a,a+n);
		int m=unique(a,a+n)-a;
		int k=0,p=0,ans=0;
		for(int r=0,l=0;r<n;r++){
			k=lower_bound(a,a+m,q[r])-a;
			cnt[k]++;
//			cout<<r<<" "<<q[r]<<"  "<<k<<" "<<cnt[k]<<endl;
//			cout<<r<<endl;
			while(cnt[k]>1&&l<r){
				p=lower_bound(a,a+m,q[l])-a;
				cnt[p]--;
				l++;
			}
//			for(int i=l;i<=r;i++)cout<<q[i]<<" ";cout<<endl;
			ans=max(ans,r-l+1);
		}
		printf("%d\n",ans);
	}
	return 0;
}
2025/8/29 15:00
加载中...