最长连续不重复子序列
分析
一个序列 - 头头指针。
实现
#include <iostream>
using namespace std;
const int N = 100010;
int a[N], cnt[N];
int main () {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; ++ i) scanf("%d", &a[i]);
int res = 0;
for (int j = 1, i = 1; j <= n; ++ j) { // [i, j]
++ cnt[a[j]];
while (i < j && cnt[a[j]] > 1) -- cnt[a[i ++]];
res = max(res, j - i + 1);
}
printf("%d", res);
return 0;
}