Faaez Razeen

Course Schedule

  • 3 min read
  • Graph
  • LC-Medium

3 years ago

Solution

For future Faaez

TimeSpaceExplanation
O(n + p)O()where n is the number of nodes and p is the number of prerequisites. N is equal to vertexes and P is equal to edges i.e. O(e + v )
def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: pre_reqs = defaultdict(list) for crs, pre in prerequisites: pre_reqs[crs].append(pre) vis = set() def dfs(crs): if crs in vis: return False if pre_reqs[crs] == []: return True vis.add(crs) for pre in pre_reqs[crs]: if not dfs(pre): return False vis.remove(crs) pre_reqs[crs] = [] return True for crs in range(numCourses): if not dfs(crs): return False return True