题解 | #矩阵的最小路径和#
矩阵的最小路径和
https://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb
public class 矩阵的最小路径和 { public int minPathSum (int[][] matrix) { int m=matrix.length; int n=matrix[0].length; if (m==0||n==0){ return 0; } int dp[][]=new int[m][n]; //初始化 dp[0][0]=matrix[0][0]; for (int i = 1; i<m; i++) { dp[i][0]=matrix[i][0]+dp[i-1][0]; } for (int i = 1; i<n; i++) { dp[0][i]=matrix[0][i]+dp[0][i-1]; } //正式开始 for (int i = 1; i <m; i++) { for (int j = 1; j <n; j++) { dp[i][j]=Math.min(dp[i][j-1],dp[i-1][j])+matrix[i][j]; } } return dp[m-1][n-1]; // write code here } }
挺简单的一道题。先初始化第一列和第一行的步数。最后计算除了第一列和第一行外的最小路径和就很简单了