题解 | #矩阵的最小路径和#
矩阵的最小路径和
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]; }