Topological Sort/Medium

Course SchedulePRO PASS

Time: O(V + E)Space: 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 / 333%
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
}

Custom Test Case Runner

Input your custom values and visualize step-by-step trace

Quick Presets:

AI DSA Coach

Contextual Tutor for Course Schedule

Hello! I am your AI DSA Tutor for **Course Schedule** (Topological Sort). Ask me anything about this algorithm, time complexity, or request a step hint!