java - 在二维数组中查找相邻元素并计算它们。

标签 java arrays for-loop recursion multidimensional-array

我对如何完成这部分作业感到困惑,我真的需要一些帮助。我需要循环遍历给定的 2d 数组并找到所有与另一个相邻的相似元素并计算它,例如

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

所以计数将是 3 个,一个用于 As,一个用于 Bs,一个用于 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);
    }
}

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

最佳答案

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

  • image[i-1][j](向上一排)
  • image[i+1][j](向下一行)
  • image[i][j-1](还剩一张)
  • image[i][j+1](右一)

当然,对于所有这些语句,首先你应该检查 +1/-1 是否仍在矩阵的大小之内,否则你将以越界异常结束。

关于java - 在二维数组中查找相邻元素并计算它们。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53381995/

相关文章:

java - 构建为 jar 时读取 .shader 文件

arrays - 检查数组中元素的更快方法?

PHP:将数组值变成变量

php - 循环获取议程和白天时间并填充数据库中的数据

java - 如何在 micronaut 中将属性源分配给特定环境?

java - 如何对对象的 ArrayList 进行排序?

c - For 循环迭代预期迭代次数的两倍

C - for 循环代码之间的差异

java - 在 Java 中测试 REST 服务的最佳方式

java - 在 java 中巧妙地将 byte[] 转换为 long[]