首页 > 解决方案 > 在二维数组中查找相邻元素并计算它们。

问题描述

我很难为我的这部分作业做些什么,并且真的可以使用一些帮助。我需要遍历给定的二维数组并找到与另一个相邻的所有相似元素并对其进行计数,例如

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

所以计数将是 3 一个作为 A 一个用于 B 一个用于 C,我只是需要一个想法从哪里开始到目前为止我有

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);
    }
}

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

标签: javaarraysfor-looprecursionmultidimensional-array

解决方案


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

  • 图像[i-1][j](上一排)
  • image[i+1][j](下一行)
  • 图像[i][j-1](左一)
  • image[i][j+1](右一)

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


推荐阅读