↓快轉到主要內容

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