Backtrack

212. Word Search II

212. Word Search II 這一題是 79. Word Search 的進階版,原先我們要找的是給定一個字串,

79. Word Search

79. Word Search 這一題用的是回溯算法,接著從矩陣的每個字元開始出發,首先會先判斷兩件事情: 1. 是否超過邊界? 2. 該座標的是不是目標字串的第一個字?

17. Letter Combinations of a Phone Number

17. Letter Combinations of a Phone Number 這是一題看起來很嚇人的考題,不過最花時間的地方是寫出每個按鍵與其對應的字元。 窮舉的方式就是窮舉出每個按鈕有的字元,

332. Reconstruct Itinerary

332. Reconstruct Itinerary 這個題目算是面試題中,我覺得少數比較合理的難題。 題目是給定一組包含整趟旅程的機票,然後每次都是從 "JFK"

1087. Brace Expansion

1087. Brace Expansion 這個題目比較特別一點,一般來說 backtracking 的題目需要窮舉的項目都很明確,這題比較特別的是需要多花一點時間去解析這個字串,光解析字串或許就可以當作一題了。 我解析的方法很簡單,

22. Generate Parentheses

22. Generate Parentheses 這一題和 46. Permutations 很類似,題目要求的就是要窮舉。 最好寫回溯法的題目通常都會符合人類的直覺,因為

47. Permutations II

47. Permutations II 有重複的數字出現,要去記錄使用的次數 class Solution: def permuteUnique(self,

46. Permutations

46. Permutations class Solution: def permute(self, nums: List[int]

90. Subsets II

90. Subsets II 這個題目是 78. Subsets 的延伸,只是給定的陣列裡面會有重複的數值,會導致找到的子集合可能是重複的,這些都是我們要去除掉的,

78. Subsets

78. Subsets class Solution: def subsets(self, nums: List[int]