Explanation:Course 0 depends on course 1 and course 2. Course 1 depends on course 2. A possible order is 2 -> 1 -> 0.
Constraints:
•
•
•
•
•
Cycle detection in directed graph using DFS. Use 3 states: unvisited(0), visiting(1), visited(2). If we encounter a node in 'visiting' state during DFS, there's a cycle. Build adjacency list from prerequisites and check all nodes.
Time Complexity
O(V + E)
Space Complexity
O(V + E)
Step 1 / 19
Speed: 1.0x
Courses
0
1
2
3
Visiting
Visited
Prerequisites
[1] needs [0]
[2] needs [0]
[3] needs [1]
[3] needs [2]
Current Execution:
function canFinish(numCourses: number, prerequisites: number[][]): boolean
4 courses with prerequisites. [1,0] means: take course 0 before course 1. Check if all courses can be completed (no cycles).