![4fc83c0a9fde2639606a1ae8f996d62c.png](https://i-blog.csdnimg.cn/blog_migrate/a11b61a692d1e0520ece7fa156dcc652.jpeg)
一开始有意识到:如果存在几门课互为prerequisites连成环,就会陷入鸡生蛋循环无法完成所有课程。但我只用了普通的回溯法去做,test case超时。看提示发现这道题涉及到Topological Sort 拓扑排序,之前并没有接触过这一类型的题目,搜一下知乎看到这个讲解还不错:
Uno Whoiam:拓扑排序的实现方法以及环路检测zhuanlan.zhihu.com![ff2327c627e0820d34856d02f6abbf12.png](https://i-blog.csdnimg.cn/blog_migrate/39e89643a12669316734b9b5538f95d4.png)
下面用一个简单的例子来过一遍拓扑排序的解题思路(天太冷+好久不写字=>字丑):
![415a12c4470e5eeea5a2e39476d2dd10.png](https://i-blog.csdnimg.cn/blog_migrate/4c54f6349fdfbbb4e096fe1a540c5b30.jpeg)
class Solution:
def canFinish(self, n: int, prere