Java 如何检查2D数组中的对角邻域并将当前值设置为等于邻域数
我试图遍历一个2D数组,计算所有等于0的对角邻域,然后将当前位置设置为等于邻域数。例如:Java 如何检查2D数组中的对角邻域并将当前值设置为等于邻域数,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我试图遍历一个2D数组,计算所有等于0的对角邻域,然后将当前位置设置为等于邻域数。例如: 0 5 0 9 0 5 0 3 1 9 4 6 7 0 0 9 应改为 0 2 0 1 0 3 1 2 1 3 1 2 0 1 1 1 我正在使用以下代码(我捕获异常,因为所有参数号都会有索引越界异常): 因此,前两条线路正常工作,然后第三条线路有几个海外建筑运营管理局错误。我甚至不知道最后一行到底出了什么问题,我也不知道这是怎么回事 摘要 原文是: 0 5 0 9 0 5 0 3 1 9 4 6
0 5 0 9
0 5 0 3
1 9 4 6
7 0 0 9
应改为
0 2 0 1
0 3 1 2
1 3 1 2
0 1 1 1
我正在使用以下代码(我捕获异常,因为所有参数号都会有索引越界异常):
因此,前两条线路正常工作,然后第三条线路有几个海外建筑运营管理局错误。我甚至不知道最后一行到底出了什么问题,我也不知道这是怎么回事
摘要
原文是:
0 5 0 9
0 5 0 3
1 9 4 6
7 0 0 9
这应改为:
0 2 0 1
0 3 1 2
1 3 1 2
0 1 1 1
但我得到了:
0 2 0 1
0 3 1 2
1 2 1 1
0 0 0 0
另一个例子是:
原件:
5 0 0 3 9 5
0 0 9 5 3 0
0 0 0 9 7 3
7 0 5 0 9 5
0 0 3 0 0 0
9 5 0 3 7 0
更新:
1 1 1 0 1 0
1 2 2 1 2 0
1 0 2 0 2 0
2 1 4 1 4 1
0 1 0 1 1 0
0 2 0 1 1 0
如有任何建议,将不胜感激 你从
0 5 0 9
0 5 0 3
1 9 4 6
7 0 0 9
从左上角开始遍历,同时修改矩阵。
所以在修改了2行之后,中间矩阵是
0 2 0 1
0 3 1 2
1 9 4 6
7 0 0 9
现在考虑索引[2][1]
处的元素。在原始矩阵中,它有3个零邻域
,但该矩阵只有2个
,因此预期和获得的输出存在差异
制作一个单独的矩阵来存储修改后的值。实际问题是什么?现在添加它。很抱歉,为什么最后一行有1?在任何对角线上都没有零。或者是你把最上面的一行当作是最后一行之后的下一行?好像它是圆形的?在这种情况下,你需要检查边,并在有边的地方,改变子索引,根据运河,我的打字错误已被修复。应该是的,但我错过了两个0。知道了。这就解决了问题。非常感谢你
0 5 0 9
0 5 0 3
1 9 4 6
7 0 0 9
0 2 0 1
0 3 1 2
1 9 4 6
7 0 0 9