LeetCode
LeetCode 97: Interleaving String
·3 分鐘
LeetCode
Medium
Dynamic-Programming
String
LeetCode 97 解題筆記,依照原始 learning note 重新整理
LeetCode 72: Edit Distance
·3 分鐘
LeetCode
Medium
Dynamic-Programming
String
LeetCode 72 解題筆記,依照原始 learning note 重新整理
LeetCode 3989: Maximum Consistent Columns in a Grid
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Matrix
Array
LeetCode 3989 解題筆記:保留的欄位是一個子序列,只要相鄰的兩欄相容;LIS 型 DP,dp[j] = 以第 j 欄結尾的最長合法序列
LeetCode 316: Remove Duplicate Letters
·1 分鐘
LeetCode
Medium
Stack
Monotonic-Stack
Greedy
String
LeetCode 316 解題筆記:單調棧 + 最後出現位置,頂端比較大而且後面還會出現就彈掉;已經在 stack 裡的直接跳過
LeetCode 726: Number of Atoms
·2 分鐘
LeetCode
Hard
Stack
String
Hash-Map
Sorting
LeetCode 726 解題筆記:先把字串切成元素、數字、括號三種 token,括號用 stack 處理,沒有數字時倍數是 1
LeetCode 516: Longest Palindromic Subsequence
·2 分鐘
LeetCode
Medium
Dynamic-Programming
String
Palindrome
LeetCode 516 解題筆記,依照原始 learning note 重新整理
LeetCode 1143: Longest Common Subsequence
·3 分鐘
LeetCode
Medium
Dynamic-Programming
String
LeetCode 1143 解題筆記,依照原始 learning note 重新整理
LeetCode 757: Set Intersection Size At Least Two
·1 分鐘
LeetCode
Hard
Greedy
Sorting
LeetCode 757 解題筆記:按右端點排序(同右端點時左端點大的先),只記最右邊兩個點;沒蓋到就放右端兩點,只蓋到一個就補右端點
LeetCode 552: Student Attendance Record II
·2 分鐘
LeetCode
Hard
Dynamic-Programming
State-Machine
LeetCode 552 解題筆記:狀態機 DP,狀態是「A 用了幾次 × 結尾連續幾個 L」共 6 種;每天選 P、A、L 決定下一個狀態
LeetCode 51: N-Queens
·1 分鐘
LeetCode
Hard
Backtracking
LeetCode 51 解題筆記:每列放一個皇后,用三個 set 記錄被佔用的欄和兩條對角線
LeetCode 488: Zuma Game
·2 分鐘
LeetCode
Hard
Dynamic-Programming
Memoization
Breadth-First-Search
String
Stack
LeetCode 488 解題筆記:board 最多 16 顆、hand 最多 5 顆,把 (board, hand) 整個當狀態做 DFS + 記憶化;只在「同色球前面」和「拆開兩顆同色球」兩種位置插入
LeetCode 1402: Reducing Dishes
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Greedy
Sorting
Array
LeetCode 1402 解題筆記:排序後從滿意度大的開始選;每多選一道放在最前面,前面選的都往後一格,總和增加「目前選的滿意度總和」,總和是正的就繼續選