UVA 11572 Unique Snowflakes

来源:互联网 发布:mac本终端安装telnet 编辑:程序博客网 时间:2024/05/28 15:27

题目大意:

给n个数, n<=100W,求一个连续子序列,这个子序列中没有重复的数,问这个子序列最长是多少?

典型的滑动窗口问题

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <map>using namespace std;const int maxn = 1000000 + 5;int n, g[maxn];map<int, int> v;int main(){    int cas;    cin>>cas;    while (cas--) {        v.clear();        cin>>n;    for (int i = 0; i < n; i++)        cin>>g[i];    int l = 0, ans = 0;    for (int r = 0; r < n; r++) {        v[g[r]]++;        while (v[g[r]] == 2) v[g[l++]]--;        ans = max(r - l + 1, ans);    }       cout<<ans<<endl;    }    return 0;}


0 0
原创粉丝点击