Course Schedule II LeetCode solution in Python
1class Solution:2def findOrder(self, numCourses: int, prerequisites: List[List[int]]) -> List[int]:3d = {i: [] for i in range(numCourses)}45for crs, prereq in prerequisites:6d[crs].append(prereq)78visit, cycle = set(), set()9output = []1011def dfs(crs):12if crs in cycle:13return False14if crs in visit:15return True1617cycle.add(crs)18for nei in d[crs]:19if not dfs(nei):20return False21cycle.remove(crs)22visit.add(crs)23output.append(crs)24return True2526for crs in range(numCourses):27if not dfs(crs):28return []29return output