799. 最長連續不重複子序列

給定一個長度爲n的整數序列,請找出最長的不包含重複數字的連續區間,輸出它的長度。html

輸入格式

第一行包含整數n。ios

第二行包含n個整數(均在0~100000範圍內),表示整數序列。spa

輸出格式

共一行,包含一個整數,表示最長的不包含重複數字的連續子序列的長度。code

數據範圍

1n1000001≤n≤100000xml

輸入樣例:

5
1 2 2 3 5

輸出樣例:



3
#include<iostream>
#include<algorithm>
using namespace std;

const int N = 1e5+ 10;

int a[N],s[N];

int main(){
    int n;
    cin >> n;
    for(int i = 0;i < n;i++) cin >> a[i];
    
    int res = 0;
    for(int i = 0,j= 0;i< n;i++){
        s[a[i]] ++;
        while(s[a[i]] > 1){
            s[a[j++]] --;//減到s[a[i]] 小於一
        }
        res = max(res,i - j + 1);
    }
    cout << res;
}
相關文章
相關標籤/搜索