题解 | #矩阵的最小路径和#

矩阵的最小路径和

https://www.nowcoder.com/practice/38ae72379d42471db1c537914b06d48e

 根据公式:dp[x][y] = Math.min(dp[x-1][y] + a[x][y],dp[x][y-1]+a[x][y])
   可知当前最小值等于Math.min(上边位置最小值+当前值,左边位置最小值+当前值),然后先计算出左/上边所有初始值再套 公式即可。

public static Integer method(int matrix[][]) {
        int dp[][] = new int[matrix.length][matrix[0].length];
        dp[0][0] = matrix[0][0];
        for (int i = 1 ; i < dp.length ; i ++) {
            dp[0][i] = dp[0][i - 1] + matrix[0][i];
            dp[i][0] = dp[i - 1][0] + matrix[i][0];
        }
        for(int x = 1; x < dp.length ; x ++){
            for(int y = 1 ; y < dp[x].length ; y ++){
                dp[x][y] = Math.min(dp[x-1][y] + matrix[x][y],dp[x][y-1]+matrix[x][y]);
            }
        }
        return dp[dp.length-1][dp[0].length-1];
    }

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务