题目链接:LeeCode64最小路径和
题目描述:
用dp数组记录到当前格子的时候最小花费,每次从上面格子和左面格子取一个小的值加到当前格子就是当前格子的最小花费。
public static int minPathSum(int[][] grid) {
int[][] dp=new int[grid.length][grid[0].length];
dp[0][0]=grid[0][0];
for (int i = 1; i < grid[0].length; i++) {
dp[0][i]=dp[0][i-1]+grid[0][i];
}
for (int i = 1; i < grid.length; i++) {
dp[i][0]=dp[i-1][0]+grid[i][0];
}
for (int i = 1; i < grid.length; i++) {
for (int j = 1; j < grid[0].length; j++) {
dp[i][j]= Math.min(dp[i][j-1]+grid[i][j],dp[i-1][j]+grid[i][j]);
}
}
/*for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
System.out.print(dp[i][j]+"\t");
}
System.out.println();
}*/
return dp[grid.length-1][grid[0].length-1];
}