Course Schedule II
Problem statement
There are numCourses courses labeled from 0 to numCourses - 1. Each pair [course, prerequisite] means the prerequisite must be completed before the course.
Return the lexicographically smallest course ordering that satisfies every prerequisite. If no valid ordering exists, return an empty array.
Function
findCourseOrder(numCourses: int, prerequisites: int[][]) → int[]Examples
Example 1
numCourses = 2prerequisites = [[1,0]]return = [0,1]Course 0 must appear before course 1.
Example 2
numCourses = 4prerequisites = [[1,0],[2,0],[3,1],[3,2]]return = [0,1,2,3]After course 0, courses 1 and 2 are both available, so lexicographic order chooses 1.
Example 3
numCourses = 2prerequisites = [[1,0],[0,1]]return = []The two courses form a cycle, so no complete ordering exists.
Constraints
1 <= numCourses <= 2000.0 <= prerequisites.length <= 5000.prerequisites[i].length == 2.0 <= course, prerequisite < numCourses.- Every prerequisite pair is unique, and a course is never its own prerequisite.