Medium · Graphs

Course Schedule

Given numCourses courses and prerequisite pairs [course, pre] (pre must be taken before course; the examples list them as adjacency lists pre → course), return an order that takes every course after all of its prerequisites (any valid order is accepted), or null if a prerequisite cycle makes that impossible.

Examples

Example 1

{
  "adj": [
    [1, 2],
    [3],
    [3],
    [4],
    []
  ],
  "pos": [
    [176, 44],
    [270, 112],
    [234, 223],
    [118, 223],
    [82, 112]
  ]
}

Output: order [0, 1, 2, 3, 4]

Example 2

{
  "adj": [
    [1],
    [2],
    [0],
    [4],
    []
  ],
  "pos": [
    [176, 44],
    [270, 112],
    [234, 223],
    [118, 223],
    [82, 112]
  ]
}

Output: null (cycle)

Rebuild it in the studio

Read every interview problem free. Ten rooms need no account. A token opens a problem in full — Pro never counts.

More Graphs problems