本帖最后由 matalin 于 2020-12-4 09:17 编辑
问题来自:https://leetcode.com/problems/course-schedule/
感觉是一个很明显的错误,这么简单的test case都没过去,可是就是找不到bug,蓝瘦香菇。。。求大神帮助!
下面是我的code:
- class Solution:
- def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
- adj = defaultdict(list)
- for dest, src in prerequisites:
- adj[src].append(dest)
-
- def isCycle(course, vis):
- # base: if we find a cycle
- if course in vis:
- return True
- # recursion
- ret = False
- vis.add(course)
- neighbors = adj[src]
- for neighbor in neighbors:
- ret = isCycle(neighbor, vis)
- if ret: break #if find a cycle, break
- vis.remove(course)
- return ret
-
- for course in range(numCourses):
- visited = set()
- if isCycle(course, visited):
- return False
- return True
复制代码
|