作文以记之 ~ 广度优先搜索BFS 和 深度优先搜索DFS 简单总结

作文以记之 ~ 广度优先搜索BFS 和 深度优先搜索DFS 简单总结

  • 0、简单总结
  • 1、BFS题目博客列表
  • 2、DFS题目博客列表

0、简单总结

广度优先搜索算法(BFS),是一种 利用队列 实现的搜索算法。
深度优先搜索算法(DFS),是一种 利用递归 实现的搜索算法。

BFS常与DFS进行比较分析, BFS 的重点在于队列,而 DFS 的重点在于递归。这是它们的本质区别。
有个小点是,能用dfs解决的题,一般就不能用bfs解决;能用bfs解决的题,一般就不能用dfs。(相关内容可点击 dfs bfs算法区别 此博客进行查看!)

两种算法的具体说明可点击 图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS) 此文章进行查看!

经过几道题的练习,简单来说,BFS算法的实现,至少需要两个存储数据的容器,比如队列和哈希表,队列保存当前条件下满足要求的数据,在这些数据中再去寻找更合适的数据;哈希表则保存所有已出现过的数据,防止后续操作误判。

DFS算法的实现,力扣上给了两种模板,第一种就是利用递归,其本质是利用了隐式栈;第二个模板与BFS有点相近,只不过是将隐式栈转换为了显式栈,或者说就是将递归展开,有点趋近于迭代。

1、BFS题目博客列表

1) 作文以记之 ~ 岛屿数量
2) 作文以记之 ~ 单词接龙
3) 作文以记之 ~ 打开转盘锁
4) 作文以记之 ~ 完全平方数
5) 作文以记之 ~ 二叉树的层序遍历
6) 作文以记之 ~ 二叉树的最大深度
7) 作文以记之 ~ 对称二叉树
8) 作文以记之 ~ 路径总和
9) 作文以记之 ~ 图像渲染
10)作文以记之 ~ 01 矩阵
11)作文以记之 ~ 钥匙和房间

后续继续补充!

2、DFS题目博客列表

1) 作文以记之 ~ 岛屿数量
2) 作文以记之 ~ 克隆图
3) 作文以记之 ~ 目标和
4) 作文以记之 ~ 二叉树的前序遍历
5) 作文以记之 ~ 二叉树的中序遍历
6) 作文以记之 ~ 二叉树的后序遍历
7) 作文以记之 ~ 二叉树的最大深度
8) 作文以记之 ~ 对称二叉树
9) 作文以记之 ~ 路径总和
10) 作文以记之 ~ 图像渲染
11) 作文以记之 ~ 钥匙和房间
12) 作文以记之 ~ 验证二叉搜索树
后续继续补充!

你可能感兴趣的:(c++,c++,BFS,DFS)