1. 程式人生 > >一個矩陣 從左上角開始 移動 只能向下移動 或者向右移動 選出 走過所有的節點上數字的和的 最大值 並求出有最大值路徑是什麼

一個矩陣 從左上角開始 移動 只能向下移動 或者向右移動 選出 走過所有的節點上數字的和的 最大值 並求出有最大值路徑是什麼

public class Bonus {
    public static void main(String[] args) {
        int[][] arr1 = {{1,2,4,500},{8,3,3,2},{4,5,6,8},{1,3,4,6}};
        System.out.println(getMost(arr));
    }
    public static int getMost(int[][] board) {
        int[][] arr = new int[board.length][board[0].length];
        for(int i = 0;i<board.length;i++){
            for(int j = 0;j<board[0].length;j++){
                int b = board[i][j];
                if(i==0&&j==0)
                    arr[i][j] = b;
                else if(i==0){
                    arr[i][j] = arr[i][j-1]+b;
                }else if (j==0) {
                    arr[i][j] = arr[i-1][j]+b;
                }else{
                    arr[i][j] = Math.max(arr[i][j-1], arr[i-1][j])+b;
                }
                System.out.println(arr[i][j] +"\t"+b + "\t"+ i +"\t" + j);
            }
        }
        return arr[board.length-1][board[0].length-1];
    }
}