Как вывести оптимальный маршрут, чтобы получить максимальную сумму пути в матрице

#java

Вопрос:

Вот мой код для нахождения максимального веса в матрице n x m.

     public static int[][] maxSum(int[][] matrix, int m, int n) {
        int[][] totalWeight = new int[m 1][n 1];
        int rightSum = 0, downSum = 0, diagonalSum = 0;
        totalWeight[0][0] = matrix[0][0];

        //fill the first row of totalWeight array from matrix array row
        for (int i = 1; i < matrix.length; i  ) {
            totalWeight[i][0] =totalWeight[i-1][0]   matrix[i][0];
        }

        //fill the first column of totalWeight array from matrix array column   
        for (int j = 1; j < matrix.length; j  ) {
            totalWeight[0][j]=totalWeight[0][j-1]   matrix[0][j];
        }

        //fill the remaining indices with the max value 
        for (int i = 1; i < totalWeight.length; i  )
            for (int j = 1; j < totalWeight.length; j  ) {
                rightSum=totalWeight[i-1][j] matrix[i][j];
                downSum=totalWeight[i][j-1] matrix[i][j];
                diagonalSum=totalWeight[i-1][j-1] matrix[i][j];
                totalWeight[i][j] = Math.max(rightSum,Math.max(downSum,diagonalSum));
                
            }
        return totalWeight;

    }
 

Вы начинаете с верхнего левого индекса и можете двигаться вниз, вправо или по диагонали, чтобы добраться до нижнего правого индекса.

Мне нужна помощь в поиске способа вывести путь от индекса (0,0) до индекса (n,m), который даст максимальную сумму.

Комментарии:

1. в чем проблема?