A college offers numCourses courses, numbered from 0 to numCourses - 1. Some courses need another course first. The list prerequisites holds pairs [a, b], and each pair means: you must finish course b before you can take course a.
Return true if it is possible to finish all the courses, and false if it is not.
Examples
Example 1:
Input: numCourses = 5, prerequisites = [[1,0],[2,0],[3,1],[3,2],[4,3]]
Output: true
Explanation: A valid order is 0, 1, 2, 3, 4. Every course comes after its prerequisites.
Example 2:
Input: numCourses = 3, prerequisites = [[0,1],[1,2],[2,0]]
Output: false
Explanation: Course 0 needs 1, course 1 needs 2, and course 2 needs 0. They wait for each other forever.
Example 3:
Input: numCourses = 4, prerequisites = [[3,2]]
Output: true
Explanation: Only course 3 has a prerequisite. All the courses can be finished.