课程表 II
| Category | Difficulty | Likes | Dislikes | 
|---|---|---|---|
| algorithms | Medium (56.67%) | 800 | - | 
Tags
depth-first-search | breadth-first-search | graph | topological-sort
Companies
facebook | zenefits
现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [a<sub>i</sub>, b<sub>i</sub>] ,表示在选修课程 a<sub>i</sub> 前 必须 先选修 b<sub>i</sub> 。
- 例如,想要学习课程 
0,你需要先完成课程1,我们用一个匹配来表示:[0,1]。 
返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回 任意一种 就可以了。如果不可能完成所有课程,返回 一个空数组 。
示例 1:
 |  | 
示例 2:
 |  | 
示例 3:
 |  | 
提示:* 1 <= numCourses <= 2000
0 <= prerequisites.length <= numCourses * (numCourses - 1)prerequisites[i].length == 20 <= a<sub>i</sub>, b<sub>i</sub> < numCoursesa<sub>i</sub> != b<sub>i</sub>- 所有 
[a<sub>i</sub>, b<sub>i</sub>]互不相同 
解法
 |  |