Java 2D 数组 : Go through groups of entries and sum their values

标签 java arrays sum

假设存在一个 2D Java 数组(用于表示目的为 4x6),其中按随机顺序填充了从 1 到 9 的数字。

如果想要计算该数组中所有数字组的单独总和该怎么办?

简单说明:
4x6 array containing six 2x2 arrays filled with random numbers

在这种特殊情况下:

  1. 蓝色区域的总和
  2. 紫色区域的总和
  3. 红色区域的总和
  4. 黄色区域的总和
  5. ...

以下代码适用于任何数组,但前提是每个条目正好是 1x1 大,这在本例(以及任何其他情况)下毫无用处,因为它只是遍历所有条目。

for (int a = 0; a < x; a++) {
    for (int b = 0; b < y; b++) {
        sum = array[a][b];
    }
}

如何让它遍历条目组,然后对单个组中的所有值求和?

最佳答案

startxstartyendxendy 就是答案。您将从 start 迭代到 end。这确实需要您知道(或能够计算)这些变量。如果不是,请澄清确切的结构。

如果您的数组声明如下:

int[][] matrix = new int [4][6];

一个粗略的例子:

public int sumOfSubMatrix (int startx, int starty, int endx, int endy) {
    int sum = 0;
    for (int x = startx; x <= endx; x++) {
        for (int y = starty; y <= endy; y++) {
            sum += matrix[x][y];
        }
    }

    return sum;
}

您只需将每个“单元格”添加到 sum 变量即可。

现在,如果“颜色”分散,即使有一个单元格关闭,那么算法就必须处理其中的某些内容,例如它们的位置,这是不可能的。如果结构 100% 困惑,那么最好的选择是使用 if-guard 进行暴力破解。

关于Java 2D 数组 : Go through groups of entries and sum their values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34277410/

相关文章:

Java - 是否可以将 setEditable(boolean b) 应用于 JSlider/

java - 根据java中的模式拆分字符串 - 大写字母和数字

python - 如何在一维数组中找到峰

php - 引用 - 这个错误在 PHP 中意味着什么?

MySQL 兼容性或相似度排名查询

php - Yii框架: get sum by scope

mysql - 按值计算多行的数学 SUM

java - 在 Azure 上使用 Maven for Hadoop 对编译/.jar 创建进行故障排除

java - 无需 Hibernate Envers 即可审计 java 实体

c# - 从字节数组中删除第一个和最后一个字节?