題解五十七

2021-10-07 07:23:05 字數 1213 閱讀 8629

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。

示例 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...