力扣 滑動視窗問題

2022-05-09 03:06:08 字數 615 閱讀 1983

1.76. 最小覆蓋子串,兩個map,滑動視窗,left移動條件是匹配計數=s1的map.size()

2.567. 字串的排列,看似和上個類似,但是移動條件,很神奇

3.424. 替換後的最長重複字元,這個挺難的,將問題轉換為視窗內除了出現次數最多的字元外,其他的字元出現次數不能多於k,這個就是left縮小的條件!

4.1208. 盡可能使字串相等,這個我迷惑了,我一直以為答案的更新只有在left移動的時候才更新,但是實際上right移動的時候也可以更新,也就是在外層while迴圈裡也可以更新啊!

5.1004. 最大連續1的個數 iii,和424題非常相似,且和1208都是一樣,每次更新right時都檢查新的ans,不是在檢查更新left時更新ans,這個模板非常重要。

6.159.最多有兩個不同字元的最長子串,滑窗結合雜湊表,移動left的判斷條件是hash表的size,同樣雜湊表也可以進行erase刪除掉鍵,減小size。

7.713. 乘積小於k的子陣列,新技巧,ans+=right-left;可以解決「最多」的問題,例如992題將恰好k個轉換為最多k個的問題!

8.904. 水果成籃,挺簡單的,沒什麼問題。視窗內最多包含兩個不同的數,求最大的視窗長度。

力扣 滑動視窗

所謂滑動視窗,其實就是雙指標有規律的移動,解決要在問題的集合中找到乙個最大 最小區間符合條件的答案。食用說明 1.2兩題是對陣列 數字的處理。思路大概相通,但有乙個重要差異,文中會談到。3.4.5題需要處理字串。方式和處理數字要複雜一點點,也有很明晰的框架。第5題和第一題也有異曲同工之處。最後會說明...

力扣題解 滑動視窗最大值

題目 給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6 7 5 1 3 ...

2 3 力扣 滑動視窗中位數

如題 他這是為難我胖虎!中位數是有序序列最中間的那個數。如果序列的長度是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 給你乙個陣列 nums,有乙個長度為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 位。你的任務是找出每次視窗移動後得到的新視窗中元素...