为您提供了一组任意的,任意的2d整数笛卡尔坐标:例如[[(0,0),(0,1),(1,0)]
从这组坐标中找到可能的最长路径,并限制只能“访问”一次坐标。(而且您不会“回到”开始时的坐标)。
重要:
您不能“越过”坐标或其周围。例如,在最后一个音符示例(矩形)中,您不能不访问C就从D移到A (这可能是重新访问,从而使找到的长度无效)。@FryAmTheEggman指出了这一点。
函数输入:二维笛卡尔坐标数组
函数输出:仅最大长度
获胜者: 最短代码获胜,没有保留被禁止(不是时空效率最高的)
例子
1:在上面所示的情况下,没有两次“访问”坐标的最长路径是A-> B-> O(或OBA或BAO),并且路径长度是sqrt(2)+ 1 = 2.414
2:在上述情况下,两次没有坐标“访问”的最长路径是ABOC(显然是COBA,OCAB等),对于所示的单位平方,它计算为sqrt(2)+ sqrt(2)+ 1 = 3.828。
注意:这是一个额外的测试用例,它不如前两个示例那么简单。这是由6个坐标组成的矩形:
在这里,最长的路径是:A-> E-> C-> O-> D-> B,即8.7147
(最大可能的对角线走过且没有横越任何边)
这是一个非常相似的问题,尽管得分不同。
—
Geobits '16
@Geobits同意,但是我在这里对问题进行了详细说明后不会说“非常”。因此,任何最小/最大路径问题本质上都是您平常的图形怀疑者的某种味道。我对这里的字节节省解决方案感兴趣。
—
BluePill
@Fatalize完成。是8.7147。
—
BluePill
顺便说一句:欢迎来到PPCG!
—
致命
@Fatalize谢谢!(实际上,我在这里已经观察了一段时间了,从今天开始我就变得活跃起来并参与了整个工作)。:)
—
BluePill