Skip to content

Commit 9478c54

Browse files
author
Joseph Luce
authored
Update 210_course_schedule_II.md
1 parent 787b63b commit 9478c54

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

leetcode/medium/210_course_schedule_II.md

+19-21
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,35 @@ They are just saying that there exists one course and that course is course 0. E
1717
```
1818
from collections import defaultdict
1919
20-
class Solution(object):
21-
def findOrder(self, numCourses, prerequisites):
20+
class Solution:
21+
def findOrder(self, numCourses: int, prerequisites: List[List[int]]) -> List[int]:
22+
def get_adj_list():
23+
adj_list = defaultdict(list)
24+
for course, prereq in prerequisites:
25+
adj_list[course].append(prereq)
26+
for n in range(numCourses):
27+
adj_list[n]
28+
return adj_list
2229
23-
def get_graph(n_courses, prereqs):
24-
graph = defaultdict(list)
25-
for course, prereq in prereqs:
26-
graph[course].append(prereq)
27-
for n in range(n_courses):
28-
graph[n]
29-
return graph
30-
31-
def dfs(node, global_visited, visited, graph, ordering):
32-
if node in visited: # cycle detected
30+
def top_sort(node, visited=set()):
31+
if node in visited: # cycle
3332
return False
3433
if node in global_visited:
3534
return True
3635
visited.add(node)
3736
global_visited.add(node)
38-
for neighbor in graph[node]:
39-
if not dfs(neighbor, global_visited, visited, graph, ordering):
37+
for neighbor in adj_list[node]:
38+
if not top_sort(neighbor):
4039
return False
41-
visited.remove(node)
4240
ordering.append(node)
41+
visited.remove(node)
4342
return True
4443
45-
graph = get_graph(numCourses, prerequisites)
46-
ordering = list()
44+
adj_list = get_adj_list()
4745
global_visited = set()
48-
for node in graph:
49-
if node not in global_visited:
50-
if not dfs(node, global_visited, set(), graph, ordering):
51-
return []
46+
ordering = list()
47+
for node in adj_list:
48+
if not top_sort(node):
49+
return []
5250
return ordering
5351
```

0 commit comments

Comments
 (0)