为了账号安全,请及时绑定邮箱和手机立即绑定

如何比较各个行的总和?

如何比较各个行的总和?

ITMISS 2022-06-23 08:55:34
我已经设法编写了将一行中的数字相加的代码,但现在我坚持比较不同行的总和。什么样的代码比较数组行的总和?我想尝试一个 if 语句,但是一旦我得到它,我不确定如何获取不同的行然后进行比较,因为你不能真正做 sum > sumpublic 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 );    }它需要在比较行之后返回具有最大值总和的行的索引
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

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


 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;

}


查看完整回答
反对 回复 2022-06-23
?
温温酱

TA贡献1752条经验 获得超4个赞

class Matrix

{

    public static void main(String arg[])

    {

        int[][] num = {{1,4,7},{12,5,56},{2,5,8},{3,6,9}};

        int index = new Matrix().Sum(num);

        System.out.println(""+index+" is index of the row with greatest sum.");

    }


    public int Sum(int[][] mat)

    {

        int val = 0,index=0;

        for(int i = 0;i<mat.length;i++)

        {

            int sum = 0;

            for(int j = 0; j<mat[i].length;j++)

            sum += mat[i][j];

            val = (i == 0 ? sum : val);

            if(val < sum)

            {

                val = sum;

                index = i;

            }

         }

         return index;

     }

}

希望这会有所帮助


查看完整回答
反对 回复 2022-06-23
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号