java - 何时使用 DFS 和 BFS

标签 java algorithm graph

这是 Facebook 黑客杯中的图搜索问题。 Problem Link

问题描述: MXN 矩阵我们必须找到从源到目标的最小距离。有改变方向的激光,我们每走一步都会发射激光。

问题:

我使用了社论中描述的相同方法,但我使用的是 DFS 而不是 BFS,我对某些情况的回答是错误的。

如何DFS 正在发挥作用 为什么 DFS 不处理此问题而 BFS 工作。

Code LINK

tHanks

Editorial

最佳答案

这很简单。如果你需要在未加权的图中找到最短路径,你应该使用 BFS。如果您需要特定的遍历顺序(如拓扑排序),您应该使用 DFS。如果路径的顺序和长度无关紧要,您可以使用它们中的任何一个。在这个问题中需要最短路径,因此 BFS 是一个明显的选择(DFS 不起作用,因为它找到了一些路径,不一定是最短的路径)。

关于java - 何时使用 DFS 和 BFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997484/

相关文章:

Haskell:常见的核心递归谬误

python - 如何使 Plotly 图形动画工作

java - 如何在 ArrayList 中添加 10 个特定产品(对象),每个产品(对象)具有不同的数据类型?

java - 即使级别关闭时也会创建 log4j2 日志文件吗?

algorithm - 为什么确定一个函数是否是纯函数很困难?

c++ - 生成随机 DAG

java - 如何从 Retrofit onResponse 获取数据

java - Play 框架中日期格式的国际化

algorithm - 二叉搜索树内部路径长度分析

algorithm - 最长回文前缀