力扣 3 無重複字元的最長子串

2022-03-29 10:22:23 字數 1078 閱讀 6779

3. 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。

示例 1:

輸入: "

abcabcbb

"輸出:

3解釋: 因為無重複字元的最長子串是

"abc

",所以其長度為 3。

示例 2:

輸入: "

bbbbb

"輸出:

1解釋: 因為無重複字元的最長子串是 "b

",所以其長度為 1。

示例 3:

輸入: "

pwwkew

"輸出:

3解釋: 因為無重複字元的最長子串是 

"wke

",所以其長度為 3

。  請注意,你的答案必須是 子串 的長度,

"pwke

" 是乙個子串行,不是子串。

1. 兩個指標,乙個指標指標 i 指向當前元素 i,另乙個指標 j 不斷往後探測,直到遇到乙個在 (j - i) 區間中有重複的數字,j - i 即為以 i 為起點的最長不重複子串的長度

2. 用乙個hashset儲存 j 探測到的沒有重複的字元,j每後移乙個就新增乙個字元,i每後移乙個就刪除乙個字元,如果 j 遇到重複字元後會等i越過這個字元才會繼續往後探測

1

class

solution

16//

不重複則後移

17for(;j < n && !set.contains(s.charat(j));j++)

20 len = math.max(len, j -i);21}

22return

len;23}

24 }

i, j 指標均需遍歷一次字串,所以時間複雜度為o(2n), 也就是o(n)

空間複雜度的話,主要是看set集合儲存字元的個數,最多儲存字串的長度個字元,所以空間複雜度為o(n)

力扣3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

力扣 無重複字元的最長子串

1.暴力解法 兩個for迴圈檢出所有子串,對於每乙個子串再分別用乙個函式判斷是否為重複子串,若為非重複子串,則計算出其長度,直至找到最大值。時間複雜度 o n3 每個子串的重複判斷需要 o j i 2.滑動視窗 初始值i j 0 j不斷向右滑動,只要該字串為非重複字串就不斷向右滑動,每次滑動記錄該不...

力扣 題目3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例3 輸入 pwwkew 輸出 3 解釋 因為...