之前面试滴滴实习的时候被问到了,以前没有好好刷LeetCode,突然今天刷题的时候看到了。
public class LeetCode_64 {
public int minPathSum(int[][] grid) {
int res = 0;
int m = grid.length;
int n = grid[0].length;
int[][] dp = new int[m][n];
dp[0][0] = grid[0][0];
for (int i=1;i<m;i++) {
dp[i][0] = grid[i][0] + dp[i-1][0];
}
for (int i=1;i<n;i++) {
dp[0][i] = grid[0][i] + dp[0][i-1];
}
for (int i=1;i<m;i++) {
for (int j=1;j<n;j++) {
dp[i][j] = grid[i][j] + dp[i][j-1] < grid[i][j] + dp[i-1][j] ? grid[i][j] + dp[i][j-1] : grid[i][j] + dp[i-1][j];
}
}
res = dp[m-1][n-1];
return res;
}