查找二维数组中每个子数组的总和

时间:2018-07-20 02:05:20

标签: java arrays

我试图在Java中找到2D数组中每个子数组的总和,并将它们存储在新数组中。这包括列和行的总和。到目前为止,我所能想到的就是可以打印出列和行之和的代码。

我不在乎复杂性。实际上,我想知道最强力的答案,即使它是O(n ^ 4)也很明显。我将比较子数组总和与给定值,以查看该总和是否存在于矩形2D数组中。

我所拥有的:

public static void outputArray(int[][] array) {
    for (int i = 0; i < array.length; i++){   
        int sum=0;
        for (int j = 0; j < array[0].length; j++){                
            sum += array[i][j]; 
        }
        System.out.println("Print the sum of rows =" + sum);
    }  

    int colSum=0;
    for(int col=0;col<array[0].length;col++){
        for(int row=0;row<array.length;row++){
            colSum+=array[row][col];
        }
        System.out.println("Sum is "+colSum);
        colSum = 0;
    }
}

1 个答案:

答案 0 :(得分:0)

如果您不关心复杂性 &&不想存储该值,那么您可以 0(n ^ 6)

false

如果您做了一些优化(例如存储前缀),那么您可以做到0(n ^ 4)。进行更多的优化可以解决O(n ^ 3)。