查找图中两个顶点之间的唯一路径数量的复杂性?

时间:2019-04-07 21:57:59

标签: algorithm graph

假设我从某个顶点(m,n)开始并想要到达一个顶点(i,j),并且图上有有效路径(值1)和无效路径(值0)。我想找到到(i,j)的唯一路径。

我当前的想法具有以下伪代码:

  1. 使用占位符变量从起点将当前节点标记为访问,并存储原始状态。

  2. DFS进入一个相邻节点,在该节点中DFS处理边界和无效路径。如果DFS目前进入要访问(未访问)的节点,请在有周期的情况下停止DFS。

  3. 如果DFS找到(i,j),则增加该值以返回。

  4. DFS之后,恢复单元的原始状态。

在几个测试用例上测试都可以,但是我不认为这是最好的解决方案,因为复杂性可能很大。我不太确定这是否正确:

  1. 时间:每个DFS的O(M + N)时间,并可能执行DFS O(MN)时间,因此O(MN *(M + N))时间。

  2. 每个DFS单元4个呼叫,那么O(4 ^(MN))空间呢?

复杂性看起来太大而无法实现。有没有更好的算法,复杂度写得正确吗?

0 个答案:

没有答案