递归与回溯的区别

递归的定义
递归是此时的状态会用用到自己上一个状态的值;
回溯的定义
回溯是进行一步一步的探索,当下一个状态走完时会回到上一个状态继续寻找其他的状态,相当于一种穷举式的搜索

dfs(深度优先搜索)与回溯

很多问题动态规划比较难想,dfs就可以用来兜底,再加上合适的剪枝就成了回溯,有时候可能比dp更快,dfs感觉比递归更好理解,一般都可以使用二叉树或者图的方式来理解。一般用回溯能解的一定能用dfs解因为dfs是遍历了所有的解。回溯遍历的解是dfs的子集

参考资料