最长连续不重复子序列

给定一个长度为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 的整数序列,请找出最长的不包含重复的数的连续区间长度。

 

posted @ 2022-11-30 21:15  !&&||  阅读(26)  评论(0)    收藏  举报