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越過這個字元才會繼續往後探測
1class
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 解釋 因為...