AcWing 799. 最长连续不重复子序列
原题链接
简单
作者:
攒到100w就退休
,
2024-01-17 12:35:26
,
所有人可见
,
阅读 35
C++ 双指针
#include <iostream>
using namespace std;
const int N = 10e5;
int a[N]; // 原始数组
int s[N]; // 数组中某个数出现几次
int n;
int main() {
scanf("%d", &n);
for(int i = 0; i < n; i ++) {
scanf("%d", &a[i]);
}
int res = 0, j = 0;
for(int i = 0; i < n; i ++) {
s[a[i]] ++; // 把第i个数加入当前数列
while(s[a[i]] > 1) { // 判断是否唯一
s[a[j]] --; // 不为一,则去掉j所指
j ++; // j 向后移
}
res = max(i - j + 1, res); // 结果取最大
}
printf("%d\n", res);
return 0;
}
小伙不错,我看好你
小伙不错,我看好你