Course Schedule
Problem
There are numCourses courses labelled 0 .. numCourses-1. Given a list of prerequisite pairs [a, b] meaning course b must be taken before course a, determine whether it is possible to finish all courses.
Input / Output
- Input: integer
numCourses, and an arrayprerequisitesof[a, b]pairs. - Output: boolean —
trueif every course can be completed,falseotherwise.
Constraints
- Up to 10^5 courses and up to 10^5 prerequisite pairs.
- Pairs may be duplicated; self-loops
[a, a]are possible and are trivially unsatisfiable. - The graph is not guaranteed connected.
Example
numCourses=2, prerequisites=[[1,0]]→true(take 0, then 1).numCourses=2, prerequisites=[[1,0],[0,1]]→false(mutual dependency = cycle).- Tricky case: a graph split into several components where only one contains a cycle must still return
false.
asked …