有一套
random inputs这样(20k行):
A B
U Z
B A
A C
Z A
K Z
A Q
D A
U K
P U
U P
B Y
Y R
Y U
C R
R Q
A D
Q Z
查找从A到Z的所有路径。
> A – B – Y – R – Q – Z
> A – B – Y – U – Z
> A – C – R – Q – Z
> A – Q – Z
> A – B – Y – U – K – Z
路径中不能出现多个位置,因此A – B – Y – U – P – U – Z无效。
位置被命名为AAA到ZZZ(为了简单起见,这里以A-Z呈现),并且输入是随机的,可以是或可以不是位置ABC,所有位置可以是XXX(不太可能),或者可能不存在所有地点的可能路径都是“隔离”的。
最初我以为这是一个变化的未加权shortest path problem,但我发现它是不同的,我不知道这里的算法如何适用于这里。
我目前的解决方案是这样的:
>预处理列表,使我们有一个hashmap,将一个位置(左)指向一个位置列表(右)
>创建一个hashmap来跟踪“访问的位置”。创建一个列表来存储“找到的路径”。
>将X(起始位置)存储到“访问位置”hashmap。
>在第一个hashmap中搜索X(位