Course Schedule I (Leetcode 207)
Problem Link: https://leetcode.com/problems/course-schedule/
from collections import defaultdict
class Solution:
def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
adj=defaultdict(list)
for i in range(len(prerequisites)):
adj[prerequisites[i][1]].append(prerequisites[i][0])
indegree=[0 for i in range(numCourses)]
for i in adj:
for j in adj[i]:
indegree[j]+=1
q=[]
for i in range(numCourses):
if(indegree[i]==0):
q.insert(0,i)
ans=[]
while(len(q)>0):
for _ in range(len(q)):
node=q.pop()
ans.append(node)
for i in adj[node]:
indegree[i]-=1
if(indegree[i]==0):
q.insert(0,i)
if(len(ans)==numCourses):
return True
else:
return False
Last updated