有向无环图中,找到最小的点集使得从这些点出发到达图中所有点。其实就是求图中入度为0的所有点的集合。入度为0的点的集合不好求,可以先求出不是入度为0的点的所有集合,然后出去这些点剩下的就是答案了。
def findSmallestSetOfVertices(n, edges):
num=[]
res=[]
for x,y in edges:
num.append(y)
num=set(num)
for i in range(n):
if i not in num:
res.append(i)
return res
n = 6
edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]
print(findSmallestSetOfVertices(n,edges))