题目描述
算法
#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int q[N], s[N], n, len;
int main(){
cin >> n;
for(int i = 0; i < n; i++) cin >> q[i];
for(int i = 0, j = 0; j < n; j++) {
s[q[j]]++;
// 右指针判定到有重复元素时,收缩左指针
while(i < j && s[q[j]] > 1) s[q[i++]]--;
len = max(len, j - i + 1);
}
cout << len << endl;
return 0;
}
原题链接:799. 最长连续不重复子序列