22 lines
692 B
C++
22 lines
692 B
C++
#include <bits/stdc++.h>
|
||
|
||
using namespace std;
|
||
const int N = 100010;
|
||
int a[N]; // 原数组
|
||
int b[N]; // 记个数的桶
|
||
int res;
|
||
|
||
int main() {
|
||
int n;
|
||
cin >> n;
|
||
for (int i = 1; i <= n; i++) cin >> a[i];
|
||
for (int i = 1, j = 1; i <= n; i++) {
|
||
b[a[i]]++; // a[i]这个数在桶中的个数+1
|
||
while (b[a[i]] > 1) b[a[j++]]--; // 如果因为a[i]的加入,导致桶中a[i]的数量大于1
|
||
// 也就是有了重复,则需要从窗口左侧尝试去掉一个,看看情况会不会变好
|
||
// 不断刷新滑动容器长度
|
||
res = max(res, i - j + 1);
|
||
}
|
||
printf("%d\n", res);
|
||
return 0;
|
||
} |