我需要你的帮助来解决一个问题。这是编码练习的一部分,我无法完全解决。
想象一下,我们有以下图表:
我需要构建一个计算路径最大长度的类。我没有根,必须以每个顶点为起点。该方法有一个最大重复次数的参数,所以如果这个1,我们可以只通过每条边一次,如果是2我们可以通过一个每个边缘最多 2 次。
在这种情况下,如果repeats=1,最大路径应该是(B,A,C)。它重复=2,那么最大路径应该是(B,A,B,A,C,C)。
为了解决不重复的问题,我想到了构建一个邻接表并运行一个 DFS 来查找图中的所有路径并提取最大的一个。我认为这应该适用于更简单的情况。
但是当我们可以重复边缘时,我不知道该怎么做。我可以使用什么样的算法来解决这个问题。你还能想出一个更有效的方法来解决这个问题吗?
谢谢