Problem · Graph
Course Schedule
Learn this problemProblem statement
There are numCourses courses labeled from 0 through numCourses - 1. Each pair [course, prerequisite] means that prerequisite must be completed before course.
Return true if it is possible to complete every course. Return false when the prerequisite graph contains a directed cycle.
Function
canFinish(numCourses: int, prerequisites: int[][]) → booleanExamples
Example 1
numCourses = 2prerequisites = [[1,0]]return = trueCourse 0 can be completed before course 1.
Example 2
numCourses = 2prerequisites = [[1,0],[0,1]]return = falseEach course requires the other first, so the graph contains a cycle.
Example 3
numCourses = 4prerequisites = [[1,0],[2,0],[3,1],[3,2]]return = trueOne valid completion order is 0, 1, 2, 3.
Constraints
1 <= numCourses <= 20000 <= prerequisites.length <= 5000- Every prerequisite pair contains two distinct valid course labels.
- No prerequisite pair appears more than once.