我正在参考斯基纳(Skienna)的算法书。
测试一个图 G
是否包含一条哈密顿路径
是一个NP难题
,其中哈密顿路径 P
是经过每个顶点一次的路径。与哈密顿回路问题不同,G 中不必从 P 的结束顶点到起始顶点有一条边。
给定一个有向无环图 G (DAG
),设计一个 O(n + m)
时间复杂度的算法来检测它是否包含哈密顿路径。
我的方法是使用 深度优先搜索(DFS)
和 拓扑排序
。但我不知道如何将这两个概念连接起来解决问题。如何使用拓扑排序来确定解决方案。
有建议吗?