Dynamic-Programming
LeetCode 264: Ugly Number II
·1 分鐘
LeetCode
Medium
Hash-Table
Math
Dynamic-Programming
Heap-Priority-Queue
LeetCode 264 解題筆記:三個指針分別指向下一個要乘 2、3、5 的醜數,每次取最小的,相等的指針都要前進
LeetCode 647: Palindromic Substrings
·1 分鐘
LeetCode
Medium
Two-Pointers
String
Dynamic-Programming
LeetCode 647 解題筆記:中心擴展,每擴展成功一次就是一個回文子字串
LeetCode 131: Palindrome Partitioning
·1 分鐘
LeetCode
Medium
String
Dynamic-Programming
Backtracking
LeetCode 131 解題筆記:每一層從剩下字串的開頭切出一段回文,切的長度從 1 到整段都要試
LeetCode 42: Trapping Rain Water
·1 分鐘
LeetCode
Hard
Array
Two-Pointers
Dynamic-Programming
Stack
LeetCode 42 解題筆記:每格能存的水是 min(左邊最高, 右邊最高) - 自己的高度;用前後綴最大值或左右雙指針
LeetCode 5: Longest Palindromic Substring
·1 分鐘
LeetCode
Medium
Two-Pointers
String
Dynamic-Programming
Manacher
LeetCode 5 解題筆記:中心擴展,每個位置當奇數和偶數長度的中心往外擴;區間 DP 的話 i 要從大到小
LeetCode 1137: N-th Tribonacci Number
·1 分鐘
LeetCode
Easy
Math
Dynamic-Programming
Memoization
LeetCode 1137 解題筆記:跟 Fibonacci 一樣,用三個變數滾動;小心 T0 = 0、T1 = T2 = 1 的起始值和迴圈範圍
LeetCode 1025: Divisor Game
·1 分鐘
LeetCode
Easy
Math
Dynamic-Programming
Brainteaser
Game-Theory
LeetCode 1025 解題筆記:dp[i] = 存在 i 的因數 x 讓 dp[i - x] 是輸;觀察後答案就是 n 是偶數
LeetCode 509: Fibonacci Number
·1 分鐘
LeetCode
Easy
Math
Dynamic-Programming
Recursion
Memoization
LeetCode 509 解題筆記:一維 DP 的起點:只需要前兩項,用兩個變數滾動
LeetCode 392: Is Subsequence
·1 分鐘
LeetCode
Easy
Two-Pointers
String
Dynamic-Programming
LeetCode 392 解題筆記:兩個指針,t 的指針一直往前,對上 s 的字元時 s 的指針也前進;兩邊的邊界都要檢查
LeetCode 119: Pascal's Triangle II
·1 分鐘
LeetCode
Easy
Array
Dynamic-Programming
LeetCode 119 解題筆記:只要第 rowIndex 列,用一維陣列從右往左更新,空間 O(k)
LeetCode 118: Pascal's Triangle
·1 分鐘
LeetCode
Easy
Array
Dynamic-Programming
LeetCode 118 解題筆記:每一列頭尾是 1,中間每一格是上一列左上和正上方的和