Skip to content
DeepForgeby svx
All problems
MediumGraph Algorithmsgraph-033

Course Schedule Order

Problem

Given num_courses courses labeled 0 to num_courses-1 and prerequisite pairs [a, b] meaning b must be taken before a, return a valid course order.

Always take the smallest available course first (lexicographically smallest order). Return an empty list when the prerequisites contain a cycle.

Hint

Build edges from prerequisite to course, then run Kahn with a min-heap.

Test cases

case 1
in: [4,[[1,0],[2,0],[3,1],[3,2]]]
expected: [0,1,2,3]
case 2
in: [2,[[1,0]]]
expected: [0,1]
case 3
in: [2,[[1,0],[0,1]]]
expected: []
case 4
in: [3,[[0,1],[1,2]]]
expected: [2,1,0]
case 5
in: [3,[]]
expected: [0,1,2]
Starter codePython
import heapq
def course_schedule_order(num_courses, prerequisites):
    # Your code here
    pass

5 test cases · run your code against them in the editor