59. Course Schedule

There are numCourses courses. [a, b] in prerequisites means you must take b before a. Can you finish all courses? (Is the dependency graph free of cycles?)

Example 1

Input: numCourses = 2, prerequisites = [[1,0]]
Output: true

Example 2

Input: numCourses = 2, prerequisites = [[1,0],[0,1]]
Output: false
Hint 1

This is cycle detection in a directed graph.

Hint 2

Kahn’s algorithm: repeatedly take courses with no remaining prerequisites.

GraphTopological Sort