【发布时间】:2021-04-19 22:59:18
【问题描述】:
我有如下矩阵:
[[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,0,0,1,1,1,1,0],
[0,0,0,0,0,0,1,0,0,1,0,0,1,0],
[0,0,0,0,0,0,1,0,0,1,0,0,1,0],
[0,0,0,0,0,0,1,0,0,1,0,0,1,0],
[0,0,0,0,0,0,1,0,0,1,1,1,1,0],
[0,0,0,0,0,0,1,0,0,1,0,0,0,0],
[0,0,0,0,0,0,1,0,0,1,0,0,0,0],
[0,0,0,0,0,0,1,1,1,1,1,1,1,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
如何在矩阵中找到跟踪 1 的路径?正如您所看到的,矩阵的 1 代表类似于单词“U2”的东西,我想返回一条类似于它应该遵循的像素的路径来绘制它。如果它已经向前移动了,它可以向后移动一条路径,但它不应该跳一个 0,它应该总是在 1 上移动。
【问题讨论】:
-
在理解您的需求时遇到了一些麻烦。 1s不代表这样的路径吗?如果要绘制它,可以将背景转换为黑色,并将 1 转换为 RGB 中的白色。
-
您想要做的与做图形seed or flood fill 非常相似,因此您可以调整算法以产生您想要的结果。
-
您的问题是如果有超过 1 个路径可用,如何选择要走的路径。这使得它依赖于一些寻路方法。您可以将所有 0 设置为墙壁,然后使用 Bellman Ford method 进行扩散寻路。
标签: python arrays algorithm matrix path-finding