LeetCode
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 3788: Maximum Score of a Split
·1 分鐘
LeetCode
Medium
Prefix-Sum
Array
LeetCode 3788 解題筆記:先建後綴最小值,再從左邊累加前綴和,枚舉每個分割點
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 584: Find Customer Referee
·1 分鐘
LeetCode
Easy
Database
Sql
LeetCode 584 解題筆記:referee_id != 2 會漏掉 NULL,因為跟 NULL 比較的結果是 unknown;要另外加上 IS NULL
LeetCode 2841: Maximum Sum of Almost Unique Subarray
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 2841 解題筆記:固定長度 k 的視窗,維護總和與計數雜湊表;不同值的個數就是雜湊表的大小,數量歸零要刪 key
LeetCode 1757: Recyclable and Low Fat Products
·1 分鐘
LeetCode
Easy
Database
Sql
LeetCode 1757 解題筆記:兩個條件都要成立,用 WHERE … AND … 過濾
LeetCode 1281: Subtract the Product and Sum of Digits of an Integer
·1 分鐘
LeetCode
Easy
Math
LeetCode 1281 解題筆記:一次走過所有位數,同時累積積與和,回傳積減和
LeetCode 1512: Number of Good Pairs
·1 分鐘
LeetCode
Easy
Math
Hash-Table
Counting
Array
LeetCode 1512 解題筆記:邊掃邊數,每個數可以跟前面每個相同的數配一對,答案加上目前的出現次數