37.解数独 Sudoku Solver
按照先行后列的顺序进行访问,当符合数独条件的时候才能向下递归,当发现符合条件的时候立即返回。
改变状态的时候,别忘记改回原来的状态。
39.Combinations Sum
这种求解所有符合条件的集合的时候通常使用dfs,新创建一个函数,函数的参数一般是给定的可选的数的候选集/目标/存放结果的容器/存放中间过程的容器/从哪一位开始选数(Combinations从当前位置后面选择位置这样的话不会出现重复,因为组合和顺序无关)。
40.Combinations Sum2
将数组排序,如果某个数第一次出现可以递归处理,囊括了后面相等的数会产生的组合,后面相等的数可以略过。
77.Combinations
从n个数中选k个数的组合,要求所有结果的集合使用dfs,因为组合和顺序无关,不能选择重复的所以必须按顺序从里面挑选,从前面的数后面来挑选。
216. Combination Sum III
CombinationSum+Combinations
如果和为0且个数为k则是结果。
46.Permutations
枚举的话使用dfs再好不过了,使用一个辅助数组记录是否已经访问过。
47. Permutations II
当有重复的数的时候,结果不重复,一定要对数组进行排序。