Course Schedule Feasibility
Problem statement
There are numCourses courses labeled from 0 through numCourses - 1. Each pair [course, prerequisite] means the prerequisite must be completed before that course. Return true if every course can be completed in some order, or false if the dependencies contain a cycle.
Courses without prerequisites may be taken at any time. The result asks only whether a complete order exists; do not return the order itself.
Function
canFinishCourses(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 requires the other first, so neither can be completed.
Example 3
numCourses = 3prerequisites = [[1,0],[2,1]]return = trueThe dependency chain 0 → 1 → 2 completes all three courses.
Constraints
1 <= numCourses <= 20000 <= prerequisites.length <= 5000- Each prerequisite pair has exactly two course indices in
[0, numCourses - 1]. - Prerequisite pairs are unique. A self-dependency is a cycle.