BFS:广度优先搜素,也是一种搜索算法,讲究搜索的广度,所以叫广度优先算法。这个算法的核心就是,先把周围的找完,再去找更深的地方。
实现思路:每遇到一个元素,就把这个元素的所有邻接元素放入队列,当队列不为空的时候,不断从队首拿出元素进行操作,直到队列为空。
队列 通常使用stl queue
常用操作:
- 入队(push)
- 出队(pop)
- 判断队列是否为空(empty)
- 统计队列元素个数(size)
- 访问队首元素(front)
下面看一下模板
BFS用来搜索最短路径的解法是比较合适的。
DFS用来搜索全部的解。 个人理解一些拆分数字之类的题 用这个更好一些
BFS是浪费空间节省时间,DFS是浪费时间节省空间