This practice workspace is built for desktop. Open it on a larger screen to start solving.
Course Schedule
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] = [a, b] indicates that you must take course b first if you want to take course a.
Return true if you can finish all courses, otherwise return false.
This is equivalent to asking: does the directed graph (edge b → a for each [a, b]) contain a cycle? If it does, the courses cannot be completed. The standard approach is topological sort (Kahn's algorithm with indegrees, or DFS with three-color marking).
Self-loops (e.g. [[0, 0]]) are cycles of length 1 and must return false.
Examples
Constraints
- 1 <= numCourses <= 2000
- 0 <= prerequisites.length <= 5000
- prerequisites[i].length == 2
- 0 <= a, b < numCourses
Preview Mode
This is a read-only preview of DSAMind's AI coaching. Sign up to get custom feedback on your own solution.
Your approach
- Pattern:Graphs
- Time:O(N)
- Space:O(1)
Complete approach — pattern and complexity both named.
Coach
What you got right
You correctly matched the sorted input requirement and implemented a linear-time scan using two pointers.
Where it diverged
No divergence detected. The code correctly aligns with the stated approach.
Next attempt: focus on
Try solving related sliding window problems to build familiarity with two-pointer variants.
Signals
No signals fired — clean run, you stayed in flow.