Course Order
Course Order
You are given numCourses labeled from 0 to numCourses-1 and a list of prerequisite pairs. Each pair [a, b] means you must take course b before course a.
Return any valid order to complete all courses. If it's impossible, return an empty list.
Function signature
func FindOrder(numCourses int, prerequisites [][]int) []int
Examples
Example 1:
Input: numCourses = 2, prerequisites = [[1,0]]
Output: [0,1]
Example 2:
Input: numCourses = 4, prerequisites = [[1,0],[2,0],[3,1],[3,2]]
Output: [0,2,1,3]
Explanation: [0,1,2,3] is also valid.
Example 3:
Input: numCourses = 2, prerequisites = [[1,0],[0,1]]
Output: []
Constraints
- 1 <= numCourses <= 10^5
- 0 <= prerequisites.length <= 2*10^5
- 0 <= a, b < numCourses
Hints
- This is topological sorting of a directed graph.
- Use Kahn's algorithm (queue of in-degree zero nodes).
- If you cannot output
numCoursesnodes, there is a cycle.
Notes
- Any valid ordering is acceptable.
- Returning an empty list indicates no feasible ordering exists.
Run tests to see results
No issues detected