Recursion
LeetCode 25: Reverse Nodes in k-Group
·1 分鐘
LeetCode
Hard
Linked-List
Recursion
LeetCode 25 解題筆記:先數長度決定要翻幾組,每組翻 k 個節點;dummy head 讓第一組不用特判,翻完原本的頭變成這組的尾
Backtracking 回溯
·3 分鐘
演算法
Backtracking
Recursion
Dfs
Pruning
選擇、遞迴、撤銷的模板,子集合、排列、限制條件、網格搜尋與剪枝
LeetCode 60: Permutation Sequence
·1 分鐘
LeetCode
Hard
Math
Combinatorics
Recursion
LeetCode 60 解題筆記:k 改成 0-indexed,第一位決定之後剩下 (n-1)! 種排法;k // (n-1)! 就是第一位在剩下的數字裡排第幾,取出後繼續處理下一位
LeetCode 394: Decode String
·1 分鐘
LeetCode
Medium
Stack
String
Recursion
LeetCode 394 解題筆記:遇到 [ 就把目前的字串和次數存進 stack,遇到 ] 再取出組合;次數可能有好幾位
LeetCode 22: Generate Parentheses
·1 分鐘
LeetCode
Daily
Medium
String
Backtracking
Recursion
Combinatorics
Parentheses
使用回溯法生成所有有效的括號組合
LeetCode 1008: Construct Binary Search Tree from Preorder Traversal
·1 分鐘
LeetCode
Medium
Tree
Bst
Binary-Tree
Recursion
LeetCode 1008 解題筆記:切陣列遞迴 O(n^2),帶上界遞迴 O(n)
LeetCode 2487: Remove Nodes From Linked List
·1 分鐘
LeetCode
Medium
Linked-List
Stack
Recursion
Monotonic-Stack
LeetCode 2487 解題筆記:保留的節點從左到右是非遞增的;用單調棧,比新節點小的都彈掉,最後把棧裡的節點串起來
LeetCode 50: Pow(x, n)
·1 分鐘
LeetCode
Medium
Math
Recursion
LeetCode 50 解題筆記:快速冪,x^n = (x²)^(n/2),n 是奇數時多乘一個 x;n 是負數時算 1 / x^(-n)
LeetCode 143: Reorder List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
Stack
Recursion
LeetCode 143 解題筆記:找中點、反轉後半段、兩條交錯合併;前半段的尾巴要切斷
LeetCode 24: Swap Nodes in Pairs
·1 分鐘
LeetCode
Medium
Linked-List
Recursion
LeetCode 24 解題筆記:dummy 加上兩兩一組,prev.next、a.next、b.next 三個指標一起重接;交換的是節點不是值
LeetCode 509: Fibonacci Number
·1 分鐘
LeetCode
Easy
Math
Dynamic-Programming
Recursion
Memoization
LeetCode 509 解題筆記:一維 DP 的起點:只需要前兩項,用兩個變數滾動
LeetCode 342: Power of Four
·1 分鐘
LeetCode
Easy
Math
Bit-Manipulation
Recursion
LeetCode 342 解題筆記:先確認是 2 的次方,再確認那個 1 在偶數位:n & 0x55555555 != 0,或 n % 3 == 1