LeetCode 🔴 3806. Maximum Bitwise AND After Increment Operations
給定加一操作次數上限,最大化任選 m 個數的 AND;從高位到低位試填答案,計算每個數補齊目標位元的最小成本。
LeetCode 🔴 3739. Count Subarrays With Majority Element II
將 target 轉成 +1、其他元素轉成 -1,問題變成統計前綴和遞增配對。
LeetCode 🔴 3700. Number of ZigZag Arrays II
給定 n, l, r,計算值域 [l, r]、長度 n 的 ZigZag 陣列數;核心為將交替升降 DP 轉成固定線性變換後用矩陣快速冪加速。
LeetCode 🔴 3699. Number of ZigZag Arrays I
給定 n, l, r,計算長度 n、值域 [l, r]、任三連續元素不成嚴格單調的 ZigZag 陣列數。核心為 DP 狀態機搭配前綴和優化,利用對稱性簡化至單一狀態陣列。
LeetCode 🔴 3826. Minimum Partition Score
劃分型 DP + 斜率優化(凸包優化)。將轉移方程化為內積形式,用下凸包維護候選點,二分查詢最優決策;再利用查詢向量的單調性,用單調隊列取代二分,達到 O(kn)。
LeetCode 🔴 3966. Count Good Integers in a Range
使用雙邊界限制的數位 DP,在一次遞迴中同時處理上下界與前導零,精確統計相鄰數位絕對差不大於 k 的好數個數。
LeetCode 🔴 3445. Maximum Difference Between Even and Odd Frequency II
求長度至少為 k 且包含奇數次字元 a 與偶數次字元 b 的子字串最大出現次數差。由於字元集極小,可枚舉雙字元 (a, b),利用前綴和將區間差值轉化為枚舉右維護左的問題,並透過雙指標滑動窗口在 O(n) 時間內維護滿足長度、奇偶性與非空限制的最佳左端點。
LeetCode 🔴 2281. Sum of Total Strength of Wizards
利用 Monotonic Stack 求出每個元素作為最小值的左右邊界,並結合前綴和的前綴和,在 O(1) 時間內計算每個元素作為最小值的子陣列元素和之和,從而高效求出所有子陣列的總力量值。
LeetCode 🔴 862. Shortest Subarray with Sum at Least K
求和至少為 k 的最短非空子陣列長度。利用前綴和將區間和轉化為兩點差,並利用單調佇列優化下達成 O(n) 時間複雜度。
LeetCode 🔴 956. Tallest Billboard
使用動態規劃維護兩個廣告牌的高度差與最大高度。每個鋼筋有三種選擇:加到第一座、加到第二座、或不使用。亦可使用折半搜索(Meet in the Middle)優化狀態空間。
LeetCode 🔴 295. Find Median from Data Stream
設計支援動態插入與查詢中位數的資料結構。用對頂堆把資料流切成較小與較大兩半,使插入為 O(log n),查詢中位數為 O(1)。
LeetCode 🔴 312. Burst Balloons
區間 DP 經典題,反過來思考最後戳破的氣球,將左右兩側拆成互不影響的子問題。
LeetCode 🔴 140. Word Break II
給定字串與字典,輸出所有能把字串完整切成字典單字的句子。可用記憶化搜尋、Trie 回溯或狀態壓縮枚舉切分點。









