-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCourseSchedule.py
More file actions
26 lines (26 loc) · 884 Bytes
/
Copy pathCourseSchedule.py
File metadata and controls
26 lines (26 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from collections import deque
class Solution:
def canFinish(self, numCourses, prerequisites) -> bool:
adjList = [[] for _ in range(numCourses)]
inDegree = [0 for _ in range(numCourses)]
queue = deque()
visited = 0
for i in range(len(prerequisites)):
adjList[prerequisites[i][0]].append(prerequisites[i][1])
for i in range(numCourses):
for j in adjList[i]:
inDegree[j] += 1
for i in range(len(inDegree)):
if inDegree[i] == 0:
queue.append(i)
while queue:
el = queue.popleft()
for i in adjList[el]:
inDegree[i] -= 1
if inDegree[i] == 0:
queue.append(i)
visited += 1
if visited == numCourses:
return True
else:
return False