LeetCode 無重複字元的最長子串(滑動視窗)

2021-10-19 23:48:17 字數 935 閱讀 2731

難度:中等

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

示例1

輸入: s = "abcabcbb"

輸出: 3

解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。

示例2

輸入: s = ""

輸出: 0

滑動窗⼝的右邊界不斷的右移,只要沒有重複的字元,就持續向右擴⼤窗⼝邊界。⼀旦出現了重複字 符,就需要縮⼩左邊界,直到重複的字元移出了左邊界(使用map可直接將左邊界跳轉到正確的位置),然後繼續移動滑動窗⼝的右邊界。以此類推, 每次移動需要計算當前⻓度,並判斷是否需要更新最⼤⻓度,最終最⼤的值就是題⽬中的所求。

(a)b c a b c b b 

(a b)c a b c b b

(a b c)a b c b b

a(b c a)b c b b

a(b c a b)c b b

a b(c a b)c b b

a b c(a b c)b b

a b c a b(c b)b

a b c a b c b(b)

class

solution

// 每次都計算最長視窗長度,防止出現沒有重複字元情況下最長長度為初始值

result = math.

max(end - start +

1, result)

;// 新增or更新字元最大位置

map.

put(key, end);}

return result;

}}

LeetCode第3題題解 無重複字元的最長子串

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

LeetCode刷題實戰3 無重複字元的最長子串

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

leetcode刷題之路3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。字元陣列和字串的區別,c語言字元陣列和字串區別詳解 開始的想法是在對字元陣列設定兩個指標,初始化乙個在位置0乙個在位置1,ans初始化...