【发布时间】:2021-09-19 06:13:51
【问题描述】:
课程安排leetcode:https://leetcode.com/problems/course-schedule/
这个问题涉及检测一个循环,如果有循环,那么你就不能完成所有课程。
我听说最推荐使用 DFS 来检测周期,但推荐使用 Kahn 算法来解决课程安排问题,这是一种 BFS 解决方案。
那么.. 是哪一个? DFS 更适合检测周期还是 BFS?
【问题讨论】:
-
最大的不同是Khan的必须一直持续到最后,如果有的话,DFS可以更早地进入循环。好问题是没有循环时谁更快,这是一个实施质量问题。
-
Khan的算法与BFS无关
标签: algorithm data-structures graph depth-first-search breadth-first-search