最長連續不重複子序列

2021-10-05 08:02:50 字數 643 閱讀 4565

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

第一行包含整數n。

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

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

1≤n≤100000

51 2 2 3 5

暴力:

for

(int i =

0;i++i)

for(

int j=

0;j<=i;

++j)if(

check

(j,i)

雙指標

slow fast

需要乙個雜湊表告訴我們當前fast所指向的元素有沒有重複

#include

using

namespace std;

const

int n =

100010

;int a[n]

,s[n]

;int n;

intmain()

res =

max(res, i-j+1)

;}cout

}

最長連續不重複子序列

核心思路 遍歷陣列a中的每乙個元素a i 對於每乙個i,找到j使得雙指標 j,i 維護的是以a i 結尾的最長連續不重複子序列,長度為i j 1,將這一長度與result的較大者更新給result。對於每乙個i,如何確定j的位置 由於 j,i 1 是前一步得到的最長連續不重複子序列,所以如果 j,i...

最長不重複子序列

其實是一道典型的雙指標問題,只要一直往後去輸入資料,如果遇到重複的資料,就讓begin指標往後移,直到重複的元素不再子串行內,在讀入新資料就可以了,每次遇到重複資料就把maxlength和當前的length比較去大值,就可以了 include include include include incl...

最長連續不重複子序列(雙指標)

給定乙個長度為n的整數序列,請找出最長的不包含重複數字的連續區間,輸出它的長度。輸入格式 第一行包含整數n。第二行包含n個整數 均在0 100000範圍內 表示整數序列。輸出格式 共一行,包含乙個整數,表示最長的不包含重複數字的連續子串行的長度。資料範圍 1 n 100000 輸入樣例 51 2 2...