我遇到了一个编程问题,其中一个将是
我们需要返回最长理想路径中最短的公共段。 理想路径是在属于上面的集合S的顶点上开始和终止的路径。 不确定共同路径是否存在。 我知道在线性时间内找到树中最长的路径,并且我们可以很容易地将它扩展到理想路径的情况,但是2 dfs的经典算法不会有帮助。 找到最长的路径,但只是最长的路径长度。 谢谢。
答案 0 :(得分:0)
如果你有:
您可以轻松获得路径。 更改代码:
//current vertex is v, next is u, current length is l
u.length = l + 1;
u.visited = true;
cont.push(u);
添加行:
u.previous = v;
然后你可以通过以下方式找到路径:
v = path_end;
while(v != path_begin){
//mark, v belongs to "path"
v = v.previous
}