![]() |
1
28
您可以使用 breadth first search 为了这个。基本上,网格中的每个单元格都对应于图中的一个节点,相邻单元格之间有边。从起始位置开始,不断扩展可通过的单元格,直到找到目标单元格。
网格设置和结果:(请注意,我使用的是符号而不是数字,只是因为这样更容易直观地解析网格并验证解决方案。)
|
![]() |
2
3
如果列表不太大,我发现最简单的解决方案是使用 where NumPy库的函数,用于查找具有所需值的单元格。因此,您需要将列表转换为NumPy数组。 下面的代码可能会被简化,以使其更短、更高效,但通过这种方式,它会更清晰。顺便说一下,您可以计算两种距离:典型的欧几里德距离和 Manhattan . 如果在与原始单元格相同的距离处有多个目标单元格, 最小坐标 对应于找到的第一个单元格(先按行,然后按列)。
|
![]() |
Tak · 在Python中获取二维数组中单元格的最短路径 7 年前 |
![]() |
The Winter Soldier · 动态最短路径 7 年前 |
![]() |
Ka Mal · 加权图中最优路径的确定算法 9 年前 |
![]() |
BKS · 两个节点之间所有最短路径列表中的最大值 10 年前 |
![]() |
razshan · Edmonds karp算法实际上是如何计算最短路径的? 11 年前 |
![]() |
roxrook · 如何用动态规划求解地形图的最短路径? 12 年前 |
![]() |
user1559625 · 奈特最短路径图数据结构与算法 12 年前 |