Backtracking
LeetCode 216: Combination Sum III
·1 分鐘
LeetCode
Medium
Array
Backtracking
LeetCode 216 解題筆記:只能用 1 到 9,每個數最多一次,選剛好 k 個加起來是 n
LeetCode 93: Restore IP Addresses
·1 分鐘
LeetCode
Medium
String
Backtracking
LeetCode 93 解題筆記:切成剛好 4 段,每段長度 1 到 3、值在 0 到 255、除了 0 本身不能有前導零
LeetCode 131: Palindrome Partitioning
·1 分鐘
LeetCode
Medium
String
Dynamic-Programming
Backtracking
LeetCode 131 解題筆記:每一層從剩下字串的開頭切出一段回文,切的長度從 1 到整段都要試
LeetCode 90: Subsets II
·1 分鐘
LeetCode
Medium
Array
Backtracking
Bit-Manipulation
LeetCode 90 解題筆記:先排序;遇到跟前一個相同的數,只延伸上一步新產生的那些子集合
LeetCode 79: Word Search
·2 分鐘
LeetCode
Medium
Array
String
Backtracking
Depth-First-Search
LeetCode 79 解題筆記:從每一格開始回溯,往四個方向比對下一個字元,走過的格子暫時標記,回溯時還原;先用字元次數剪枝
LeetCode 78: Subsets
·1 分鐘
LeetCode
Medium
Array
Backtracking
Bit-Manipulation
LeetCode 78 解題筆記:每個元素選或不選;迭代寫法是每加入一個數,就把現有的每個子集合複製一份並加上它
LeetCode 77: Combinations
·1 分鐘
LeetCode
Medium
Backtracking
LeetCode 77 解題筆記:從 1 到 n 選 k 個,dfs(start, path),下一個只從 start 之後選,避免重複的組合
LeetCode 47: Permutations II
·1 分鐘
LeetCode
Medium
Array
Backtracking
Sorting
LeetCode 47 解題筆記:先排序,同一層如果跟前一個值相同而且前一個還沒被用,就跳過
LeetCode 46: Permutations
·1 分鐘
LeetCode
Medium
Array
Backtracking
LeetCode 46 解題筆記:每一層從還沒用過的數裡選一個,用 used 陣列標記,path 滿了就記錄
LeetCode 40: Combination Sum II
·1 分鐘
LeetCode
Medium
Array
Backtracking
LeetCode 40 解題筆記:每個數只能用一次而且有重複,排序後下一層從 i + 1 開始,同一層跳過跟前一個相同的值
LeetCode 39: Combination Sum
·1 分鐘
LeetCode
Medium
Array
Backtracking
LeetCode 39 解題筆記:同一個數可以重複選,所以遞迴時下一層從 i 開始(不是 i + 1),這樣也避免了順序不同的重複
LeetCode 17: Letter Combinations of a Phone Number
·1 分鐘
LeetCode
Medium
Hash-Table
String
Backtracking
LeetCode 17 解題筆記:每一層處理一個數字,枚舉它對應的字母;空字串要回傳空 list