Prefix-Sum
LeetCode 3719: Longest Balanced Subarray I
·1 分鐘
LeetCode
Medium
Hash-Table
Prefix-Sum
Segment-Tree
Array
LeetCode 3719 解題筆記:n 只有 1500,固定左端點往右擴,用兩個集合增量維護不同的奇數和偶數
LeetCode 2838: Maximum Coins Heroes Can Collect
·1 分鐘
LeetCode
Medium
Binary-Search
Prefix-Sum
Sorting
LeetCode 2838 解題筆記:怪物依強度排序建金幣前綴和,每個英雄用 bisect_right 找能打贏的範圍
LeetCode 1712: Ways to Split Array Into Three Subarrays
·2 分鐘
LeetCode
Medium
Binary-Search
Prefix-Sum
Two-Pointers
LeetCode 1712 解題筆記:固定第一刀,第二刀的合法範圍用兩次 bisect 或兩個單調指針找出來
LeetCode 930: Binary Subarrays With Sum
·1 分鐘
LeetCode
Medium
Sliding-Window
Prefix-Sum
Hash-Table
Array
LeetCode 930 解題筆記:「和剛好是 goal」= 「和最多 goal」−「和最多 goal - 1」;或用前綴和 + 雜湊表
LeetCode 3814: Maximum Capacity Within Budget
·1 分鐘
LeetCode
Medium
Binary-Search
Sorting
Prefix-Sum
LeetCode 3814 解題筆記:依成本排序加上前綴最大容量,每台機器用 bisect 找能搭配的最貴機器
LeetCode 2968: Apply Operations to Maximize Frequency Score
·1 分鐘
LeetCode
Hard
Sliding-Window
Sorting
Prefix-Sum
Binary-Search
Array
LeetCode 2968 解題筆記:排序後,把一段全部變成同一個值,最省的目標是中位數;用前綴和 O(1) 算花費,花費隨視窗變大而變大,可以滑動
LeetCode 2875: Minimum Size Subarray in Infinite Array
·1 分鐘
LeetCode
Medium
Sliding-Window
Prefix-Sum
Hash-Table
Array
LeetCode 2875 解題筆記:先拿掉 target // sum 個完整週期,剩下的餘數比一整圈小,一定能在兩份 nums 接起來的陣列裡用滑動視窗找到
LeetCode 2302: Count Subarrays With Score Less Than K
·1 分鐘
LeetCode
Hard
Sliding-Window
Prefix-Sum
Binary-Search
Array
LeetCode 2302 解題筆記:分數 = 總和 × 長度,都是正數,視窗越大分數越大;分數 >= k 就縮左邊,以 right 結尾的合法子陣列有 right - left + 1 個
LeetCode 3413: Maximum Coins From K Consecutive Bags
·2 分鐘
LeetCode
Medium
Sliding-Window
Greedy
Sorting
Prefix-Sum
Binary-Search
Array
LeetCode 3413 解題筆記:最佳的 k 個袋子,一定有一端對齊某段的端點;分別算「左端對齊段的起點」和「右端對齊段的終點」(鏡像後重用同一個函式)
LeetCode 2106: Maximum Fruits Harvested After at Most K Steps
·1 分鐘
LeetCode
Hard
Sliding-Window
Prefix-Sum
Binary-Search
Array
LeetCode 2106 解題筆記:採到的一定是連續一段水果;走完 [L, R] 的最少步數是 (R - L) + min(|start - L|, |R - start|),在水果陣列上用滑動視窗
LeetCode 2271: Maximum White Tiles Covered by a Carpet
·1 分鐘
LeetCode
Medium
Sliding-Window
Greedy
Sorting
Prefix-Sum
Binary-Search
Array
LeetCode 2271 解題筆記:地毯的左端放在某段白磚的起點一定不會更差;排序後用雙指針,完整蓋住的段累加,最後一段只算部分
LeetCode 1838: Frequency of the Most Frequent Element
·1 分鐘
LeetCode
Medium
Sliding-Window
Sorting
Greedy
Prefix-Sum
Binary-Search
Array
LeetCode 1838 解題筆記:排序後,把視窗裡的數都加到 nums[right] 的花費是 nums[right] × 長度 − 視窗總和;花費 > k 就縮左邊