如何在矩阵中求和一行

Bry*_*Bry 2 java multidimensional-array

写方法:

public int sumRow(int[][] matrix, int row)
Run Code Online (Sandbox Code Playgroud)

row在2D数组中对行进行求和,称为矩阵.

鉴于:

public void run()
{
    System.out.println(sumRow(new int[][]{{70,93,68,78,83},{68,89,91,93,72},{98,68,69,79,88}}, 2));
    System.out.println(sumRow(new int[][]{{1,1,1}, {2,2,2}, {3,3,3}}, 0));
    System.out.println(sumRow(new int[][]{{2,4,6,8,10}, {1,2,3,4,5}, {10,20,30,40,50}}, 2));
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

public int sumRow(int[][] matrix, int row)
{
    int sum = 0;
    for(int i = 0; i < matrix.length; i++)
    {
        for(int j = 0; j < matrix.length; j++)
        {
            sum = sum + matrix[j][i];
        }   
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是714,18和78,它们应该是402,3和150.我做错了什么?

Chr*_*ong 5

当您被要求对2D数组中的特定行求和时,您当前正在尝试对2D数组中的所有元素求和.在这种情况下,您只需要一个for循环来遍历单个行,就像遍历单个数组一样.循环将从第一个元素开始,matrix[row][0]并一直运行到最后一个元素,matrix[row][matrix[row].length - 1]因为matrix[row].length是矩阵的特定行中的列/元素的数量.因此,matrix[row].length - 1将是最后一个元素的索引matrix[row].这是它应该是什么样子,

public int sumRow(int[][] matrix, int row)
{
    int sum = 0;
    for(int i = 0; i < matrix[row].length; i++)
    {
        sum += matrix[row][i];
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

  • 看到真正问题的唯一答案之一.+1 (3认同)