leetcode 210. Course Schedule II

来源:互联网 发布:hisuite mac版 编辑:程序博客网 时间:2024/06/06 01:56
class Solution(object):    def findOrder(self, numCourses, prerequisites):        """        :type numCourses: int        :type prerequisites: List[List[int]]        :rtype: List[int]        """        res = list()        courses = [ 0 for i in range(numCourses)]          pres = [[] for i in range(numCourses)]          for a in prerequisites:               pres[a[1]].append(a[0])              courses[a[0]] += 1          while True:              not_find = True              for i in range(numCourses):                  if courses[i] == 0:                      courses[i] = -1 # flag it                    res.append(i)                    not_find = False                      for a in pres[i]:                          courses[a] -= 1              if not_find:                  for i in range(numCourses):                      if courses[i] != -1:                          return []                  return res