本文最后更新于 254 天前,如有失效请评论区留言。
拓扑排序是对事件先后顺序有要求的排序,但只能是对无向图AOV图,有环图无效(因为没有顺序可言)
g = defaultdict(list)
indeg = [0] * n #入度
#建图
for x, y in nums:
g[y].append(x)
indeg[x] += 1
cnt = 0
order = []#拓扑排序表
q = deque(i for i, x in enumerate(indeg) if x == 0)#入度为0的最先进入排序
while q:
x = q.popleft()
order.append(x)
for y in g[x]:
indeg[y] -= 1
if indeg[y] == 0:
q.append(y)
return order if len(order)==n else []#判断是否有环