Leetcode記錄 3題 無重複字元的最長子串

2021-09-25 11:14:00 字數 723 閱讀 8515

思路:用乙個128長度的boolean陣列存放所有ascii碼中的符號,初始化都為false表示沒有訪問過,雙指標i,j初始指向0,遍歷給定字串所有字元。如果j所指字元未訪問,則將該字元改為已訪問,並向右移;否則j訪問的字元表示已訪問,len取當前長度和j-i的最大值,並且將i移動到和j所指字元重複的字元的位置+1,j++。最後還要比較len取最大值。

時間複雜度:o(n)

class

solution

boolean[

] zifu=

newboolean

[128];

for(

int i=

0;i<

128;i++

)int i=0;

int j=0;

int len=0;

while

(jlength()

)else

//zifu[s.charat(i)]=false;//不可以這樣,因為當前所指不一定就和i所指重複,可能和i到j之間的某個字元重複。

i++; j++;}

} len=math.

max(len,j-i)

;return len;

}}

LeetCode 刷題 3 無重複最長子串

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

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

說明 部分文字解析來自於原文。一 暴力解法 時間複雜度o n 3 二 滑動視窗 時間複雜度為o n 三 優化的滑動視窗 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入...

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

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