請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。
示例1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
示例3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。
提示
s.length <= 40000
長度為n的字串共有(1+
n)n2
\over 2
2(1+n)
n個子字串(複雜度為o(n
2)
o(n^2)
o(n2
)),判斷長度為n的字串是否有重複字元的複雜度為o(n),因此本題使用暴力法解決的複雜度為o(n
3)
o(n^3)
o(n3
)。考慮使用動態規劃降低時間複雜度。
動態規劃解析:
當idp[<
0i<0
i<
0時,由於dp[
j−1]
≤j
dp[j-1]\leq j
dp[j−1
]≤j恆成立,因此分支
1.
和2.
可被合併。
j]
=dp[j-1]+1 & &
return res;
}}複雜度分析:
48 最長不含重複字元的子字串
面試題48.最長不含重複字元的子字串 請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度...
最長不含重複字元的子字串(動態規劃)
請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew ...
面試題48 最長不含重複字元的子字串
請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含a z的字元。例如,在字串 arabcacfr 中,最長的不含重複字元的子字串是 acfr 長度為4。我們定義函式f i 表示以第i個字元為結尾的,不包含重複字元的子字串的最長長度。我們從左到右逐一掃瞄字串中的每...