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 array prerequisites of [a, b] pairs.
  • Output: boolean — true if every course can be completed, false otherwise.

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 …
LeaderboardSalaryAccount