File tree Expand file tree Collapse file tree 1 file changed +17
-18
lines changed Expand file tree Collapse file tree 1 file changed +17
-18
lines changed Original file line number Diff line number Diff line change 1
1
class Solution :
2
2
def findOrder (self , numCourses : int , prerequisites : List [List [int ]]) -> List [int ]:
3
- graph = [[] for _ in range (numCourses )]
4
- indegree = [0 ]* numCourses
3
+ graph = defaultdict (list )
4
+ indeg = [0 ]* numCourses
5
+ for i , j in prerequisites :
6
+ graph [i ].append (j )
7
+ indeg [j ] += 1
5
8
6
- for x , y in prerequisites :
7
- graph [y ].append (x )
8
- indegree [x ] += 1
9
-
10
- q = deque ()
9
+ qu = deque ()
11
10
for i in range (numCourses ):
12
- if indegree [i ] == 0 :
13
- q .append (i )
11
+ if indeg [i ] == 0 :
12
+ qu .append (i )
14
13
15
- result = []
16
- while q :
17
- node = q .popleft ()
18
- result .append (node )
19
- for neighbor in graph [node ]:
20
- indegree [ neighbor ] -= 1
21
- if indegree [ neighbor ] == 0 :
22
- q .append (neighbor )
14
+ ans = []
15
+ while qu :
16
+ curr = qu .popleft ()
17
+ ans .append (curr )
18
+ for nei in graph [curr ]:
19
+ indeg [ nei ] -= 1
20
+ if indeg [ nei ] == 0 :
21
+ qu .append (nei )
23
22
24
- return result if len (result ) == numCourses else []
23
+ return ans [:: - 1 ] if len (ans ) == numCourses else []
You can’t perform that action at this time.
0 commit comments