course-schedule dfs py3
This commit is contained in:
38
0207_course-schedule/python3/dfs.py
Normal file
38
0207_course-schedule/python3/dfs.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from collections import defaultdict
|
||||
|
||||
class Solution:
|
||||
def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
|
||||
graph = defaultdict(list)
|
||||
|
||||
for course, pre in prerequisites:
|
||||
graph[course].append(pre)
|
||||
|
||||
cycles = set()
|
||||
visited = set()
|
||||
|
||||
def dfs(course):
|
||||
if course in cycles:
|
||||
return False
|
||||
|
||||
if course in visited:
|
||||
return True
|
||||
|
||||
visited.add(course)
|
||||
cycles.add(course)
|
||||
|
||||
for dep in graph[course]:
|
||||
if not dfs(dep):
|
||||
return False
|
||||
|
||||
cycles.remove(course)
|
||||
|
||||
return True
|
||||
|
||||
for course in range(numCourses):
|
||||
cycles = set()
|
||||
|
||||
if not dfs(course):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
0
0207_course-schedule/python3/solution.py
Normal file
0
0207_course-schedule/python3/solution.py
Normal file
Reference in New Issue
Block a user