在二维数组中查找相邻元素并对其进行计数。

时间:2018-11-19 20:15:59

标签: java arrays for-loop recursion multidimensional-array

我为完成这部分作业而烦恼,可以真正使用一些帮助。我需要遍历给定的2d数组,找到与另一个数组相邻的所有相似元素,并进行计数,例如

AA--B
AA--B
-AA--
----C

因此,对于A来说,计数为3。对于B,对于C,计数是3,我只是有点想知道从哪里开始,到目前为止,我已经掌握了

public static int howManyOrganisms(char[][] image){
    int count = 0;
    for (int i = 0; i < image.length; i++) {
        for (int j = 0; j < image[i].length; j++) {
            if(image[i][j] != '-') {
                count++;

            }
            System.out.println();
        }
        return howManyOrganisms(image, count);
    }
}

我需要帮助弄清楚如何跟踪彼此接触的元素的总数(左右,向下,向上,向上),这是另一种相似的元素。

1 个答案:

答案 0 :(得分:1)

在每次迭代中,您都可以使用i,j变量“导航”二维平面,并查看是否有任何交互项相同。在每次迭代中,您将检查以下索引以查看它们是否相同:

  • image [i-1] [j](向上一行)
  • image [i + 1] [j](向下一行)
  • image [i] [j-1](左一个)
  • image [i] [j + 1](右)

当然对于所有这些语句,首先应该检查+ 1 / -1是否仍在矩阵的大小内,否则最终将出现超出范围的异常。