Uva11572

读入可以不需要存入数组

#include<bits/stdc++.h>

#define inf 0x3f3f3f3f

//const int maxn=;

using namespace std;

int t;

int n;

int main()
{
      scanf("%d",&t);
      while(t--){
        map<int, int> m;
        scanf("%d",&n);
        int ans = -inf;
        int cnt = 0;
        int imax = 0;
        int x;
        for(int i = 1; i <= n; ++i){
                scanf("%d",&x);
                if(!m[x]){
                    ++cnt;
                } else {
                        ans = max(ans, cnt);
                        imax = max(imax, m[x] + 1);
                        cnt = i - imax + 1;
                }
                m[x] = i;
        }
        ans = max(ans, cnt);
        printf("%d\n",ans);
      }
    return 0;
}

 

posted @ 2017-04-17 21:22  GeniusYang  阅读(261)  评论(0编辑  收藏  举报