2D数组中元素之间的距离

5 arrays algorithm 2d distance

如何确定2D阵列中1之间的距离.例如,我们有一个像这样的2D数组:

0 0 0 0
0 0 0 1
1 0 0 0
1 0 0 0
Run Code Online (Sandbox Code Playgroud)

算法必须输出从每个元素到最近的1的距离.像这样:

2 3 2 1
1 2 1 0
0 1 2 1
0 1 2 2
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Dun*_*can 4

您可以迭代矩阵并找到所有 1 (x1, y1) 的坐标。然后,对于单元格 (x2, y2) 中的每个位置,对于列表中的所有 (x1, y1),找到最小值 |x2 - x1| + |y2 - y1| (曼哈顿距离,因为它是网格)。