回溯算法part06总结

回溯算法可以解决问题:

组合问题:N个数里面按一定规则找出k个数的集合,用递归控制for循环嵌套的数量

切割问题:一个字符串按一定规则有几种切割方式,难点在于如何模拟那些切割线,切割问题中递归如何终⽌,在递归循环中如何截取⼦串,如何判断回⽂

子集问题:一个N个数的集合里有多少符合条件的子集,在树形结构中子集问题是要收集所有节点的结果,而组合问题是收集叶子节点的结果,可以不需要加终止条件。

排列问题:N个数按一定规则全排列,有几种排列方式,排列是有序的,也就是说 [1,2] 和 [2,1] 是两个集合,这和之前分析的⼦集以及组合所不同的地⽅,每层都是从0开始搜索⽽不是startIndex,

需要used数组记录path⾥都放了哪些元素了

棋盘问题:N皇后,解数独等等

你可能感兴趣的:(算法)