Как сравнить суммы отдельных строк? - PullRequest
0 голосов
/ 15 февраля 2019

Мне удалось написать код для сложения чисел в строке, но теперь я застрял при сравнении сумм разных строк.Какой тип кода сравнивает суммы строк массивов?

Я думал о том, чтобы попробовать оператор if, но когда я до него доберусь, я не уверен, как получить разные строки и затем сравнить, так как вына самом деле не может сделать сумму> сумма

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 );
    }

Требуется вернуть индекс строки, которая имеет наибольшую сумму значений после сравнения строк вместе

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019
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;
     }
}

НАДЕЖДА ЭТО ПОМОЖЕТ

0 голосов
/ 15 февраля 2019

Сохраняйте переменную, указывающую наибольшую сумму до сих пор, а также, если вы хотите хранить индекс, также

 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;
}
...