首页 > 解决方案 > 如何比较各个行的总和?

问题描述

我已经设法编写了将一行中的数字相加的代码,但现在我坚持比较不同行的总和。什么样的代码比较数组行的总和?

我想尝试一个 if 语句,但是一旦我得到它,我不确定如何获取不同的行然后进行比较,因为你不能真正做 sum > sum

public class MatrixLab {

    public int largestRowSum(int[][] matrix) {
        //Comment outline before coding!  
        int[][] nums = matrix;
        int sum = 0;
        int arraySum = 0;
        //add individual rows
        for(int r = 0; r < matrix.length; r++) {
           for(int c = 0; c < matrix[r].length; c++) {
              sum += nums[r][c];
           }
        }
        System.out.println( sum );
        //compare rows 

        //return the value
        System.out.println( arraySum );
    }

它需要在比较行之后返回具有最大值总和的行的索引

标签: javaarraysrowscolumnsorting

解决方案


保留一个表示最大总和的变量,如果你也想要存储索引

 public int largestRowSum(int[][] matrix) {
    //Comment outline before coding!  
    int[][] nums = matrix;
    int sum = 0;
    int arraySum = 0;
    int maxSum = 0; // Indicates the max sum of row encountered till now
    int indexOfmaxSumRow = 0; // index of row which corresponds to maxsum
    //add individual rows
    for (int r = 0; r < matrix.length; r++) {
        for (int c = 0; c < matrix[r].length; c++) {
            sum += nums[r][c];
        }
        if (sum > maxSum) {
            maxSum = sum;
            indexOfmaxSumRow = r;
        }
    }
    System.out.println(sum);
    //compare rows 

    //return the value
    System.out.println(arraySum);
    return indexOfmaxSumRow;
}

推荐阅读