algorithm - 到达 DAG 中所有节点的最小节点子集
问题描述
假设我们有一个由节点 A、B、C、D 和 E 组成的 DAG。
每个节点都有一个可达节点列表 - 例如:
A --> B, C
A --> B
D --> E
在这种情况下,我们必须访问节点 A 和 D 才能全面访问图中的所有节点。一般来说,解决这个问题的最佳算法是什么?
解决方案
这是一种线性方法:
- 对于每个节点计数,它的度数(指向它的边数)
- 因为图是一个 DAG(无循环),我们可以将所有入度为 0 的节点作为我们的起始子集
时间复杂度(N + M) - 图大小线性
推荐阅读
- regex - 引号之间的井号
- python - 我无法使用 PythonKit 在 Xcode 11 中导入 Python 模块
- .net - IIS 中托管的应用程序在事件 id 12 和 9009 后停止
- python - 如何在“while”循环python 3中使用“or”和“not”
- python - Nan值的布尔索引
- scala - Future 上的惰性验证是否会阻止实际的数据库调用?
- javascript - jQuery 验证 - 在 Safari 中不验证日期,但在 Chrome 中验证
- python - 我无法使用 cv2.imwrite () 方法进行图像处理
- python - 如何在 Python 中为线性回归预处理字符串数据
- c# - TempData 在我的 .NET Core 项目中不起作用