Array
LeetCode 1335: Minimum Difficulty of a Job Schedule
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Interval-Dp
Array
LeetCode 1335 解題筆記:切成 d 段的分割 DP;dp(i, k) = 從第 i 個工作開始、剩 k 天的最小難度,枚舉今天做到哪裡,邊枚舉邊更新今天的最大難度
LeetCode 3651: Minimum Cost Path with Teleportations
·2 分鐘
LeetCode
Hard
Dynamic-Programming
Grid-Dp
Matrix
Array
LeetCode 3651 解題筆記:一層一層算傳送次數;傳送到某格的成本是上一層「值 >= 它的格子」的最小值,排序後用前綴最小值求,再跑一次右 / 下的 Grid DP
LeetCode 312: Burst Balloons
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Interval-Dp
Array
LeetCode 312 解題筆記:枚舉區間 (i, j) 裡「最後一個」戳破的氣球 k,這時它的鄰居就是 i 和 j,左右兩邊的子問題互相獨立
LeetCode 3660: Jump Game IX
·1 分鐘
LeetCode
Medium
Dynamic-Programming
Array
LeetCode 3660 解題筆記:在 i 和 i+1 之間切一刀,如果左邊的最大值 > 右邊的最小值,兩邊就能互相跳到,答案一樣;否則左邊的答案就是左邊的最大值
LeetCode 307: Range Sum Query - Mutable
·2 分鐘
LeetCode
Medium
Segment-Tree
Binary-Indexed-Tree
Design
Array
LeetCode 307 解題筆記:單點更新加區間和,前綴和每次更新要 O(n);用線段樹或 Fenwick Tree,兩種操作都是 O(log n)
LeetCode 3960: Frequency Balance Subarray
·1 分鐘
LeetCode
Medium
Hash-Table
Counting
Array
LeetCode 3960 解題筆記:n 只有 1000,固定左端點往右擴,同時維護「值 -> 次數」和「次數 -> 個數」;只有 f 和 2f 兩種次數就成立
LeetCode 3951: Minimum Energy to Maintain Brightness
·1 分鐘
LeetCode
Medium
Array
Sorting
LeetCode 3951 解題筆記:一盞燈最多照亮 3 個位置,每個時間單位至少要 ceil(brightness / 3) 盞;合併區間算出需要的總時間再相乘
LeetCode 3919: Minimum Cost to Move Between Indices
·1 分鐘
LeetCode
Medium
Greedy
Prefix-Sum
Array
LeetCode 3919 解題筆記:一步一步走,每一步成本是 1(下一格是 closest)或差值;直接跳不會更便宜,用前綴和回答查詢
LeetCode 3917: Count Indices With Opposite Parity
·1 分鐘
LeetCode
Easy
Array
LeetCode 3917 解題筆記:從右往左掃,記目前看過幾個奇數、幾個偶數;每個位置的答案就是右邊奇偶相反的個數
LeetCode 3914: Minimum Operations to Make Array Non Decreasing
·1 分鐘
LeetCode
Medium
Greedy
Array
LeetCode 3914 解題筆記:對區間加 x 只會讓左邊界的差值變大 x,所以答案是所有下降量的總和
LeetCode 3912: Valid Elements in an Array
·1 分鐘
LeetCode
Easy
Array
LeetCode 3912 解題筆記:比左邊全部大就是比前綴最大值大,比右邊全部大就是比後綴最大值大;兩個方向各掃一次再照原順序輸出
LeetCode 3909: Compare Sums of Bitonic Parts
·1 分鐘
LeetCode
Medium
Array
LeetCode 3909 解題筆記:走到山頂,左右兩邊各自加總;山頂兩邊都算,比大小時加不加都一樣