Course Schedule Cycle Detection
Problem statement
There are numCourses courses labeled from 0 to numCourses - 1. You are given a list prerequisites, where prerequisites[i] = [course, prerequisite] means that prerequisite must be completed before course.
Return true if it is possible to finish every course. Otherwise, return false.
Function
canFinish(numCourses: int, prerequisites: int[][]) → booleanExamples
Example 1
numCourses = 2prerequisites = [[1,0]]return = trueTake course 0 before course 1.
Example 2
numCourses = 2prerequisites = [[1,0],[0,1]]return = falseEach course depends on the other, so the dependency graph contains a directed cycle.
Example 3
numCourses = 4prerequisites = [[1,0],[2,1],[3,2]]return = trueThe courses can be completed in the order 0, 1, 2, 3.
Constraints
1 <= numCourses <= 2000.0 <= prerequisites.length <= 5000.prerequisites[i].length = 2.0 <= course, prerequisite < numCourses.- Every prerequisite pair is unique.