我有一个二进制矩阵0
and 1
,并给定整数 K >=0。现在我想找到所有可能的单元格,这些单元格与具有该值的单元格的最大距离为 K1
并将它们标记为某个字母“x”。
单元格 A[5][2] 和 A[1][4] 之间的距离为 |1-5|+|4-2|=6。
Example:
8x8 矩阵,K = 2,单元格具有值1
at (2,2)
and (6,6)
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0
Output:
0 0 x 0 0 0 0 0
0 x x x 0 0 0 0
x x 1 x x 0 0 0
0 x x x 0 0 0 0
0 0 x 0 0 0 x 0
0 0 0 0 0 x x x
0 0 0 0 x x 1 x
0 0 0 0 0 x x x
这是我正在尝试的逻辑:
找到 1 的单元格位置并找到从 row 开始的所有单元格-k
till +k
对于给定的列。同样查找具有给定行和列的所有单元格,范围为-k
till +k
。因此,对于上面的示例,对于 (2,2),根据我的逻辑,单元格是 (0,2)、(1,2)、(2,2)、(3,2) 、(4,2) 然后 ( 2,0)、(2,1)、(2,2)、(3,2)、(4,2)。
但我无法理解如何获取 (2,2) 周围的剩余单元格,即 (1,1)、(1,3) 和 (3,1) 、(3,3) 。
Matrix is of size m rows and n cells in range 1 to 500
K range is 1 to 1000