我对如何完成这部分作业感到困惑,我真的需要一些帮助。我需要循环遍历给定的 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/