Topological Sort · Medium

Course Schedule

O(V + E) · O(V + E)

Step 1: Setup & Initialization - Course Schedule

Track node in-degrees and process zero in-degree nodes via BFS queue.

Array Elements & Pointers
10
[0]
20
[1]
30
[2]
40
[3]
50
[4]
Live Variables & Invariants
status:Initialized
pattern:Course Schedule
Step 1 / 3
33%
Solution Code
1
function canFinish(numCourses: number, prerequisites: number[][]): boolean {
2
  const inDegree = new Array(numCourses).fill(0);
3
  for (const [a, b] of prerequisites) inDegree[a]++;
4
  const q: number[] = [];
5
  for (let i = 0; i < numCourses; i++) if (inDegree[i] === 0) q.push(i);
6
  let count = 0;
7
  while (q.length) { const node = q.shift()!; count++; }
8
  return count === numCourses;
9
}
LeetCode IDE Console

Test Cases

3 cases from Blind 75 & NeetCode 150

Ask for a hint whenever you get stuck.