Skip to content
BASA DSA

Course Schedule II

MediumGraphs

Return any ordering of all course IDs satisfying every [course, prerequisite] pair. Return an empty array if no ordering exists.

Example 1

Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order. Vertices: node 0: 0, node 1: 1, node 2: 2, node 3: 3. Edges: node 0 (0) → node 1 (1); node 0 (0) → node 2 (2); node 1 (1) → node 3 (3); node 2 (2) → node 3 (3).0123
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.

Input
numCourses = 4
prerequisites = [[1,0],[2,0],[3,1],[3,2]]
Output
[0,1,2,3]

Explanation

0 precedes 1 and 2, both preceding 3; [0,1,2,3] is a valid order.

Example 2

Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order. Vertices: node 0: 0, node 1: 1. Edges: node 1 (1) → node 0 (0); node 0 (0) → node 1 (1).01
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.

Input
numCourses = 2
prerequisites = [[0,1],[1,0]]
Output
[]

Explanation

Mutual dependencies form a cycle, so no ordering exists.

Example 3

Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order. Vertices: node 0: 0. Edges: none.0
Prerequisite → course. Each [course, prerequisite] pair is reversed to show the required order.

Input
numCourses = 1
prerequisites = []
Output
[0]

Explanation

The one course still appears even without edges.

Constraints

  • 1 <= numCourses <= 2000
  • At most 5000 distinct prerequisite pairs
  • IDs are 0..numCourses-1

Function contractfindOrderArguments: json, json
Loading draft…
SolutionRuns on your device
Loading draft…