最小路径和-动态规划

62 阅读1分钟
// 最小路径和 动态规划

// [

// [1,3,1],

// [1,5,1],

// [4,2,1],

// ]

public static int minPathSum(int[][] grid) {

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

        for (int j = 0; j < grid[0].length; j++) {

            if(i==0&&j==0)continue;

            // i=0,j=0直接进入下一个循环

            // i=0,j-1的大小加当前的值

            // j=0,i-1的大小加当前值

            // 否则取i-1或j-1的最小值加当前值

            else if(i==0)grid[i][j]=grid[i][j-1]+grid[i][j];

            else if(j==0)grid[i][j]=grid[i-1][j]+grid[i][j];

            else grid[i][j]=Math.min(grid[i-1][j], grid[i][j-1])+grid[i][j];

        }

    }

    return grid[grid.length-1][grid[0].length-1];

}