File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+ from collections import defaultdict
2+
3+ class Solution :
4+ # def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
5+ # for pre_x, pre_y in prerequisites:
6+ # if [pre_y, pre_x] in prerequisites:
7+ # return False
8+ # return True
9+
10+
11+ def canFinish (self , numCourses : int , prerequisites : List [List [int ]]) -> bool :
12+ d = defaultdict (list )
13+
14+ for x , y in prerequisites :
15+ d [x ].append (y )
16+
17+ visited = set ()
18+ finished = set ()
19+
20+ def dfs (course ):
21+ if course in visited :
22+ return False
23+ if course in finished :
24+ return True
25+
26+ visited .add (course )
27+ for v in d [course ]:
28+ if not dfs (v ):
29+ return False
30+ visited .remove (course )
31+ finished .add (course )
32+ return True
33+
34+ for course in list (d ):
35+ if not dfs (course ):
36+ return False
37+ return True
You can’t perform that action at this time.
0 commit comments