000207-courses-schedule
Problem
Solution
class Solution:
def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
courses, indegree = collections.defaultdict(list), [0]*numCourses
for a, b in prerequisites:
courses[b].append(a)
indegree[a] += 1
queue = collections.deque()
# no dependencies, add into queue
for c in range(numCourses):
if indegree[c] == 0:
queue.append(c)
completedCourses = len(queue)
# print("complectd courses: ", completedCourses)
while queue:
start = queue.popleft()
for c in courses[start]:
indegree[c] -= 1
if indegree[c] == 0:
queue.append(c)
completedCourses += 1
return completedCourses == numCoursesLast updated