Как сравнить суммы отдельных строк?

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

Я подумал о том, чтобы попробовать оператор 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 );
    }

Он должен вернуть индекс строки с наибольшей суммой значений после сравнения строк вместе.

я настоятельно рекомендую вам подумать о решении, если нет, вы можете сослаться на мое решение ниже, чтобы получить представление.

Ravi 15.02.2019 07:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
320
2

Ответы 2

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

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

НАДЕЮСЬ, ЭТО ПОМОЖЕТ

Другие вопросы по теме