我正在试图弄清楚如何比较n个列表以找到列表中的公共链接。例如,以下是列表:
A = [1,2,3],
B = [3,4,5,6],
C = [6,7,8],
D = [4,5,6],
..
..
该程序的输入将是A和C(寻找找到A& C之间公共链接的方法)
The expected output is
C-->B-->A (A & C are linked through B)
挑战可能是找到更深层次的联系,例如
A = [1,2,3],
B = [3,4,5,6],
C = [6,7,8],
D = [8,9,10],
E = [10,11,12] ..
..
该程序的输入将是A和E(寻找找到A& E之间公共链接的方法)
The expected output is
E-->D-->C-->B-->A (A & E are linked through D,C,B)
我看过这个比较两个列表的解决方案,但它解决了一个非常不同的问题:How to find common elements in list of lists?
答案 0 :(得分:0)
解决这个问题你需要:
将每个数组与每个其他数组进行比较,如果至少有一个元素是常用的,则创建权重为1的边,HashSet会帮助你
只要你有图表,就可以使用任何路径查找算法,我建议你从最简单的Floyd–Warshall开始