Imagine you're planning your college course schedule! ๐ You have numCourses courses numbered from 0 to numCourses - 1, and some courses have prerequisites that must be completed first.
You're given an array prerequisites where prerequisites[i] = [ai, bi] means you must complete course ai before taking course bi. For example, [0, 1] means course 0 is required before course 1.
Here's the tricky part: Prerequisites can be indirect! If course A is required for course B, and course B is required for course C, then course A is also required for course C (transitivity).
You need to answer multiple queries where each query [u, v] asks: "Is course u a prerequisite of course v?"
Goal: Return a boolean array where each element answers the corresponding query efficiently.
Input & Output
Constraints
- 2 โค numCourses โค 100
- 0 โค prerequisites.length โค (numCourses * (numCourses - 1) / 2)
- prerequisites[i].length == 2
- 0 โค ai, bi โค numCourses - 1
- ai โ bi
- All the pairs [ai, bi] are unique
- The prerequisites graph has no cycles
- 1 โค queries.length โค 104
- 0 โค uj, vj โค numCourses - 1
- uj โ vj