最长连续不重复子序列
C++代码实现:
#include<iostream>
using namespace std;
const int N = 1000002;
int a[N], count[N];
int main() {
int result = 0;
int n;
// 输入数组长度
cin >> n;
// 输入数组元素
for (int i = 0; i < n; i++) {
cin >> a[i];
}
// 使用滑动窗口求解最长不重复子数组长度
for (int i = 0, j = 0; i < n; i++) {
count[a[i]]++;
// 如果当前元素在窗口中出现了多次,移动窗口的起始位置
while (count[a[i]] > 1) {
count[a[j]]--;
j++;
}
// 更新最长不重复子数组长度
result = max(result, i - j + 1);
}
// 输出结果
cout << result;
return 0;
}
JAVA代码实现:
import java.util.*;