题解 | #矩阵的最小路径和#
矩阵的最小路径和
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];
}
阿里巴巴公司氛围 661人发布