Problem · Graph
Course Schedule
Learn this problemProblem statement
There are numCourses courses numbered from 1 through numCourses.
Each pair [course, prerequisite] in prerequisites means that prerequisite must be completed before course.
Return true if it is possible to complete every course. Return false if the prerequisite relationships contain a cycle.
Function
canFinish(numCourses: int, prerequisites: int[][]) → booleanExamples
Example 1
numCourses = 3prerequisites = [[1,2],[2,1]]return = falseCourse 1 requires course 2, while course 2 requires course 1, so neither can be completed first.
Example 2
numCourses = 4prerequisites = []return = trueThere are no prerequisites, so all four courses can be completed in any order.
Example 3
numCourses = 4prerequisites = [[2,1],[3,1],[4,2],[4,3]]return = trueOne valid order is 1, 2, 3, 4.
Constraints
1 <= numCourses <= 50000 <= prerequisites.length <= min(5000, numCourses * (numCourses - 1) / 2)prerequisites[i].length == 21 <= prerequisites[i][0], prerequisites[i][1] <= numCoursesprerequisites[i][0] != prerequisites[i][1]- No prerequisite pair appears more than once.