有一个矩阵map,它每个格子都有一个权值。从左上角的格子开始每次只能向右或则向下走,最后达到右下角的位子,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。
解析
public class getMinPath {
int getMin(int[][]map,int n,int m){
int[][]dp =new int[n][m];
dp[0][0]=map[0][0];
for(int i=1;i<n;i++){
dp[i][0]=dp[i-1][0]+map[i][0];
}
for(int i=1;i<m;i++){
dp[0][i]=dp[0][i-1]+map[0][i];
}
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)
dp[i][j]=Math.min(dp[i-1][j], dp[i][j-1])+map[i][j];
return dp[n-1][m-1];
}
}