by Pawan Kumar @jsartisan
Given numCourses
courses (labeled 0 to numCourses-1) and prerequisites where prerequisites[i] = [a, b]
means:
- You must take course
b
before taking coursea
Determine if it's possible to finish all courses.
Constraints:
- 1 ≤ numCourses ≤ 1000
- 0 ≤ prerequisites.length ≤ 1000
- All prerequisite pairs are unique
- prerequisites[i].length == 2
Examples:
// Example 1:
const numCourses1 = 2;
const prerequisites1 = [[0,1]];
console.log(canFinish(numCourses1, prerequisites1));
// Output: true
// Explanation: Take course 1 first, then course 0
// Example 2:
const numCourses2 = 2;
const prerequisites2 = [[0,1],[1,0]];
console.log(canFinish(numCourses2, prerequisites2));
// Output: false
// Explanation: Courses 0 and 1 form a cycle, impossible