Description
There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai. Return true if you can finish all courses. Otherwise, return false.
Examples
Input:
numCourses = 2, prerequisites = [[1,0]]Output:
trueExplanation:
Take course 0 first, then course 1.
Input:
numCourses = 2, prerequisites = [[1,0],[0,1]]Output:
falseExplanation:
Circular dependency - impossible to complete.
Input:
numCourses = 3, prerequisites = [[1,0],[2,1]]Output:
trueExplanation:
With numCourses = 3, prerequisites = [[1,0],[2,1]], there are no circular dependencies, so all courses can be completed in a valid order.
Constraints
- •
1 ≤ numCourses ≤ 2000 - •
0 ≤ prerequisites.length ≤ 5000 - •
prerequisites[i].length == 2 - •
0 ≤ ai, bi < numCourses - •
All the pairs prerequisites[i] are unique.