WA求调
查看原帖
WA求调
762010
Lizj楼主2024/7/18 16:56

rt,思路是分重复和不重复两种情况

#include<bits/stdc++.h>
using namespace std;
int a[1000010],maxn=-1e9;
map<int,int> mp;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        mp.clear();
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        mp[a[1]]=1;
        int l=1,r=1;
        maxn=-1e9;
        while(l<=r&&r<=n){
            if(mp[a[r]]>1){
                l++;
                if(--mp[a[l]]==1)
                    break;
            }
            if(mp[a[r]]==1){
                maxn=max(maxn,r-l+1);
                r++;
                mp[a[r]]++;
            }
        }
    }
    cout<<maxn;
    return 0;
}
2024/7/18 16:56
加载中...