【刷题记录】回溯和dfs区别

37 阅读1分钟

回溯 是一种更加通用的算法。

DFS 是一种基于搜索树结构的数据的回溯。

leetcode例题:括号生成,分别使用回溯和dfs的解法

backtraking的代码确实有个特点是recursive call之后要退回到之前的一个状态;

这里使用了dfs是将解题的方式抽象成了树;

区别不大,回溯像是dfs的更高层的抽象;

回溯搜索是深度优先搜索(DFS)的一种对于某一个搜索树来说(搜索树是起记录路径和状态判断的作用)回溯和DFS其主要的区别是回溯法在求解过程中不保留完整的树结构而深度优先搜索则记下完整的搜索树为了减少存储空间在深度优先搜索中用标志的方法记录访问过的状态这种处理方法使得深度优先搜索法与回溯法没什么区别了

ref: