Sliding-Window
LeetCode 1016: Binary String With Substrings Representing 1 To N
·2 分鐘
LeetCode
Medium
Sliding-Window
String
Bit-Manipulation
Hash-Table
LeetCode 1016 解題筆記:s 最多 1000 個字元,長度固定時的子字串數量有限,n 太大一定是 False;從 n 往下檢查會很快失敗,或從每個起點往右最多延伸 30 位收集所有 <= n 的值
LeetCode 3795: Minimum Subarray Length With Distinct Sum At Least K
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 3795 解題筆記:求最短的可變視窗;同一個值只算一次,記錄每個值最後出現的位置,左邊界移出的是最後一次出現才扣掉
LeetCode 2653: Sliding Subarray Beauty
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 2653 解題筆記:值域只有 -50 到 50,固定視窗用計數陣列維護,每個視窗從 -50 往上累加找第 x 小的負數
LeetCode 1888: Minimum Number of Flips to Make the Binary String Alternating
·1 分鐘
LeetCode
Medium
Sliding-Window
String
Dynamic-Programming
LeetCode 1888 解題筆記:把移到尾巴的操作變成在 s + s 上滑動長度 n 的視窗;視窗跟 0101… 不同的數量是 diff,跟 1010… 不同的就是 n - diff
LeetCode 3694: Distinct Points Reachable After Substring Removal
·1 分鐘
LeetCode
Medium
Sliding-Window
Prefix-Sum
Hash-Table
String
LeetCode 3694 解題筆記:終點 = 全部的位移 − 被刪掉那段的位移;用長度 k 的視窗維護那段的位移,把每個終點放進 set
LeetCode 2134: Minimum Swaps to Group All 1's Together II
·1 分鐘
LeetCode
Medium
Sliding-Window
Array
LeetCode 2134 解題筆記:所有 1 最後會佔一段長度為 1 的個數的環狀視窗,要交換的次數就是視窗裡 0 的數量;在環上滑動找最小值
LeetCode 3679: Minimum Discards to Balance Inventory
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Simulation
Counting
Array
LeetCode 3679 解題筆記:規則已經決定哪些要丟,直接模擬;長度 w 的視窗只計算「留下來」的到貨,被丟掉的離開視窗時不能再扣
LeetCode 2461: Maximum Sum of Distinct Subarrays With Length K
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 2461 解題筆記:固定長度 k 的視窗,不同值的個數剛好等於 k 才代表全部不重複
LeetCode 1423: Maximum Points You Can Obtain from Cards
·1 分鐘
LeetCode
Medium
Sliding-Window
Prefix-Sum
Array
LeetCode 1423 解題筆記:從兩端拿 k 張,等於中間留下連續 n - k 張;用固定長度視窗找留下來的最小和
LeetCode 2841: Maximum Sum of Almost Unique Subarray
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 2841 解題筆記:固定長度 k 的視窗,維護總和與計數雜湊表;不同值的個數就是雜湊表的大小,數量歸零要刪 key
LeetCode 1493: Longest Subarray of 1's After Deleting One Element
·1 分鐘
LeetCode
Medium
Sliding-Window
Dynamic-Programming
Array
LeetCode 1493 解題筆記:找「最多 1 個 0」的最長視窗,因為一定要刪一個元素,答案是視窗長度減 1
LeetCode 3439: Reschedule Meetings for Maximum Free Time (Sliding Window)
·2 分鐘
LeetCode
Daily
Medium
Array
Sliding-Window
Two-Pointers
Intervals
LeetCode 解題紀錄