UVA11572

UVA11572 唯一的雪花 Unique Snowflakes

这题题目有迷惑性,我一开始以为用set过一遍互异性求size就行,结果是选最长无重复连续子区间。。。
不过反应过来以后一遍过了,真不戳

点击查看代码
#include<bits/stdc++.h>
using namespace std;

void solve() {
    int n; cin >> n;
    vector<int>a(n+1);
    unordered_map<int, int>mp;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    int l = 1, r = 1;
    int maxn = 1;
    while(l <= r || r <= n) {
        while(mp[a[r]] == 0 && r <= n) {
            mp[a[r]] = 1;
            r++;
        }
        maxn = max(maxn, r - l);
        mp[a[l]] = 0;
        l++;
    }
    cout << maxn <<'\n';
}

int main() {
    int t;cin >> t;
    while(t--) {
        solve();
    }
    return 0;
}
posted @ 2025-05-12 22:32  Chuan81  阅读(7)  评论(0)    收藏  举报