algorithm - 到达 DAG 中所有节点的最小节点子集

标签 algorithm

假设我们有一个由节点 A、B、C、D 和 E 组成的 DAG。

每个节点都有一个可达节点列表——例如:

A --> B, C
A --> B
D --> E

在这种情况下,我们必须访问节点 A 和 D 才能全面访问图中的所有节点。一般来说,解决这个问题的最佳算法是什么?

最佳答案

这是一个线性方法:

  1. 对于每个节点计数,它的入度(指向它的边数)
  2. 因为图是一个 DAG(无环),我们可以将入度为 0 的所有节点作为我们的起始子集

时间复杂度(N + M)- 与图形大小成线性

关于algorithm - 到达 DAG 中所有节点的最小节点子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55115275/

相关文章:

algorithm - 如何在给定的二叉树中找到最大大小为 K 的所有有根子树?

string - 匹配两个数据集之间的公共(public)字符串

algorithm - 有没有时间复杂度为O(n*(log n)^2)的算法?

c# - 为什么我的数组索引在此算法中越界?

java - 一种算法,以检查是否最多可以通过插入或删除一个字符来从另一个字符串中获得一个字符串?

python - 找到带黑色边框的最大方 block

根据元素的大小将元素分成几类的算法

javascript - NodeJS 中的高效深拷贝

algorithm - 在散列算法之上使用另一种算法

python - 是否有任何算法可以从序列数据库中挖掘连续的封闭序列?