最长连续不重复子序列
给定一个长度为n 的整数序列,请找出最长的不包含重复的数的连续区间长度。
#include <iostream>
#include <unordered_map>
using namespace std;
const int N = 100010;
int a[N];
unordered_map<int, int> mp;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
int ans = 0;
for (int i = 1, j = 1; j <= n; j++) {
mp[a[j]]++;
while (mp[a[j]] > 1) mp[a[i++]]--;
ans = max (ans, j - i + 1);
}
cout << ans << endl;
return 0;
}
<span id="MathJax-Span-2" class="mrow"><span id="MathJax-Span-3" class="mi">n 的整数序列,请找出最长的不包含重复的数的连续区间长度。

浙公网安备 33010602011771号