Gary Lai

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]

216. Combination Sum III

216. Combination Sum III 這一題和 77. Combinations 與 39. Combination

40. Combination Sum II

40. Combination Sum II 這題是以下兩題的總和: 1. 像是 90. Subsets II

39. Combination Sum

39. Combination Sum 這個題目也是窮舉題目,我們每次都從最小的數字開始拿,慢慢的往上加,如果說最後沒辦法湊到結果,就把最後一個數字拿掉,再看看大一點的數字可不可以到目標。有一點像是換錢幣的題目。

77. Combinations

77. Combinations 這一個題目的精神和我們平常窮舉的精神一樣,我們先從最小的數字開始,慢慢地的和比自己大的樹去取組合,列完後,找到次小的數字,重複同樣的動作。 我們從 1