Course Schedule II
There are numCourses courses labeled 0..numCourses-1 with prerequisite pairs [a, b] meaning b must precede a. Return any ordering of all courses that respects every prerequisite, or an empty array if no such ordering exists (the graph has a cycle).
Open official problem prompt ↗Produce a concrete schedule of all courses such that every course appears after all of its prerequisites, or prove no such schedule exists.
Like publishing a build order for software modules: you print a module only once every library it imports has already been printed.
- Input
- numCourses = 4, prerequisites = [[1, 0], [2, 0], [3, 1], [3, 2]]
- Output
- [0, 1, 2, 3]
- Why
- 0 has no prerequisite; 1 and 2 each need 0; 3 needs both 1 and 2, so it comes last.
1 <= numCourses <= 20000 <= prerequisites.length <= numCourses * (numCourses - 1)prerequisites[i].length == 20 <= a_i, b_i < numCoursesa_i != b_iAll prerequisite pairs are distinct