回溯算法实际上就是一种暴力求解
为什么暴力解不用for循环而要用回溯
一个极端例子,要求解length为50的数组 的所有子集,for就需要嵌套“无数层”,但是如果用回溯的话,相对于是递归自己在内部调用for循环,
说实话给我的感觉有点像,传统的异步函数,因为回调地狱的情况被Promise替换掉,
模板
回溯法可以有模板,如下
在外部先声明变量
let res = []
let path = []
递归函数的参数不一定是这几个,具体问题具体分析
const backtracking = (n , k , startIndex){
第一步,判断递归终点
if(path.length == k){
处理path
res