Return any ordering of all course IDs satisfying every [course, prerequisite] pair. Return an empty array if no ordering exists.
Example 1
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.numCourses = 4
prerequisites = [[1,0],[2,0],[3,1],[3,2]]
[0,1,2,3]
Explanation
0 precedes 1 and 2, both preceding 3; [0,1,2,3] is a valid order.
Example 2
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.numCourses = 2
prerequisites = [[0,1],[1,0]]
[]
Explanation
Mutual dependencies form a cycle, so no ordering exists.
Example 3
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.numCourses = 1
prerequisites = []
[0]
Explanation
The one course still appears even without edges.
Constraints
- 1 <= numCourses <= 2000
- At most 5000 distinct prerequisite pairs
- IDs are 0..numCourses-1
Function contractfindOrderArguments: json, json