Binary-Search
LeetCode 1011: Capacity To Ship Packages Within D Days
·1 分鐘
LeetCode
Medium
Array
Binary-Search
LeetCode 1011 解題筆記:對答案二分,容量範圍是 [max(weights), sum(weights)],用貪心照順序裝來檢查天數
Linear DP 線性 DP
·4 分鐘
演算法
Dynamic-Programming
State-Machine
Monotonic-Queue
Binary-Search
一維 DP、狀態機 DP、DP + 單調佇列、排序後的區間排程 DP、子序列計數去重,以及標了 DP 但用觀察或貪心更快的題目
Interval DP 區間 DP
·2 分鐘
演算法
Dynamic-Programming
Interval-Dp
Memoization
Binary-Search
區間 DP(枚舉最後一步 / 兩端合併)、切成 k 段的分割 DP、回文表 + 分割,以及狀態太複雜時直接記憶化搜尋整個狀態
Binary Search 二分搜尋
·5 分鐘
演算法
Binary-Search
Prefix-Sum
Two-Pointers
lower / upper bound、對答案二分、第 k 小、整數開根號,以及兩種區間寫法不能混用
LeetCode 719: Find K-th Smallest Pair Distance
·2 分鐘
LeetCode
Hard
Binary-Search
Two-Pointers
Sliding-Window
Sorting
LeetCode 719 解題筆記:對距離二分,用滑動窗口數「距離 <= mid 的 pair 數」
LeetCode 1292: Maximum Side Length of a Square with Sum Less than or Equal to Threshold
·2 分鐘
LeetCode
Medium
Binary-Search
Prefix-Sum
Matrix
LeetCode 1292 解題筆記:二維前綴和加上對邊長二分;兩種二分寫法不能混用
LeetCode 410: Split Array Largest Sum
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Binary-Search
Greedy
Prefix-Sum
Array
LeetCode 410 解題筆記:對答案二分搜尋;給定上限 mid,貪心地能塞就塞,數出最少要切幾段,段數 <= k 就表示 mid 可行
LeetCode 1235: Maximum Profit in Job Scheduling
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Binary-Search
Sorting
Array
LeetCode 1235 解題筆記:工作依結束時間排序,best[j] = 只用前 j 個工作的最大收益;選第 j 個時二分搜尋最後一個結束時間 <= 開始時間的工作
LeetCode 2141: Maximum Running Time of N Computers
·1 分鐘
LeetCode
Hard
Greedy
Binary-Search
Sorting
LeetCode 2141 解題筆記:比平均時間還大的電池只能給一台電腦用,連同那台電腦一起拿掉,剩下的取平均;要用嚴格的大於
LeetCode 902: Numbers At Most N Given Digit Set
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Digit-Dp
Math
Binary-Search
String
LeetCode 902 解題筆記:數位 DP,狀態是 (pos, tight, started);還沒開始時可以跳過這一位,代表位數比 n 少的數
LeetCode 3932: Count K-th Roots in a Range
·2 分鐘
LeetCode
Medium
Binary-Search
Math
LeetCode 3932 解題筆記:答案是 floor(r^(1/k)) - floor((l-1)^(1/k)),開根號用整數二分避免浮點誤差,0 也要算
LeetCode 300: Longest Increasing Subsequence
·2 分鐘
LeetCode
Medium
Dynamic-Programming
Binary-Search
LeetCode 300 解題筆記,依照原始 learning note 重新整理