請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。
示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
示例 2:
輸入: 「bbbbb」
輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
示例 3:
輸入: 「pwwkew」
輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。
思路:我們可以用乙個滑動視窗來尋找最長子串:
(1)建立乙個256位的整型陣列window,用來建立字元和其出現位置的對映;
(2)維護乙個滑動視窗,視窗內部都是不重複的字元,盡可能的擴大視窗的大小,即不停向右滑動;
(3)如果當前遍歷的字元從未出現過,則擴大右邊界;
(4)如果遍歷到出現過的字元,縮小視窗,則左邊索引向右移動,然後繼續遍歷;
(5)重複步驟(3)(4),直到左邊索引再也無法移動;
(6)我們需要每次用出現過的視窗大小來更新結果res,最後返回res。
class
solution
int n = s.
length()
;char
arr = s.
tochararray()
;int
window =
newint
[256];
int l =
0, res =1;
for(
int i =
0; i < n; i++
) res = math.
max(res, i - l +1)
;}return res;
}}
使用雜湊表:
class
solution
map.
put(k, i)
; ans = math.
max(ans, i - start);}
return ans;
}}
Vue練習五十七 07 02
太多使用了 refs來直接操作dom,有待更正 需求 1 滑鼠移至 離開左側 右側,顯示 隱藏向左 向右切換按鈕 2 載入時新增loading.gif,載入完成後消失 根據網速 4 向左 向右切換至第一張 最末一張後,再次點選,彈出提示無更多 解析 1 html結構 1個大的div id為big 包...
詩與遠方 無題(五十七)
這首詩,是當時上家公司安排團建,我不想去,因為當時想離職,後面又被大佬安排去了,去了之後發現團建還挺好玩的,後面公司說要寫個感想,我就跟大佬們說,我寫首詩吧,不寫感想了,於是就出來了 激情久久難褪去,舉手動嘴共協作 扎筏泅渡並前進,衣襟均溼勿忘行 若問天無通庭處,何不堆塔定高低 高空捉杆腳搖晃,斷橋...
程式設計第五十七天
c numeric標頭檔案中數值演算法 include iostream include numeric 數值演算法 include vector include functional include iterator include math.h using namespace std int m...