↓快轉到主要內容

Monotonic-Queue

Linear DP 線性 DP
·4 分鐘
演算法 Dynamic-Programming State-Machine Monotonic-Queue Binary-Search
一維 DP、狀態機 DP、DP + 單調佇列、排序後的區間排程 DP、子序列計數去重,以及標了 DP 但用觀察或貪心更快的題目
LeetCode 1425: Constrained Subsequence Sum
·1 分鐘
LeetCode Hard Sliding-Window Dynamic-Programming Monotonic-Queue Heap Queue Array
LeetCode 1425 解題筆記:dp[i] = nums[i] + max(0, 前 k 個 dp 的最大值);前 k 個 dp 的最大值是滑動視窗最大值,用單調佇列 O(1) 取得
LeetCode 3835: Count Subarrays With Cost Less Than or Equal to K
·1 分鐘
LeetCode Medium Sliding-Window Monotonic-Queue Queue Array
LeetCode 3835 解題筆記:花費 = (最大 - 最小) × 長度,視窗變大只會變貴,所以可以滑動視窗數子陣列;視窗最大、最小值用兩個單調佇列維護
LeetCode 2762: Continuous Subarrays
·1 分鐘
LeetCode Medium Sliding-Window Monotonic-Queue
LeetCode 2762 解題筆記:滑動窗口加兩個單調隊列,隨時拿到窗口的最大值和最小值
LeetCode 1696: Jump Game VI
·2 分鐘
LeetCode Medium Dynamic-Programming Monotonic-Queue Queue Heap
LeetCode 1696 解題筆記:dp[i] = nums[i] + 前 k 個 dp 的最大值;前 k 個的最大值用單調佇列維護,O(n)
LeetCode 239: Sliding Window Maximum
·1 分鐘
LeetCode Daily Hard Monotonic-Queue
LeetCode 解題紀錄
Sliding Window 滑動視窗
·5 分鐘
演算法 Sliding-Window Two-Pointers Hash-Table Monotonic-Queue
固定長度視窗、可變長度求最長 / 最短、數子陣列個數(最多 K 相減、至少 K 用 count += left)、單調佇列維護視窗最值