题目
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Example 1:
[[1,3,1],
[1,5,1],
[4,2,1]]
Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes the sum.
分析
emmmmm
没得说
dp
这里写代码片
class Solution {
public static int minPathSum(int[][] grid) {
int[] dp = new int[grid[0].length];
dp[0] = grid[0][0];
for (int i = 1; i<grid[0].length;i++) {
dp[i] = dp[i-1] + grid[0][i];
}
for (int i = 1; i<grid.length; i++) {
for (int j = 0; j<grid[0].length; j++) {
if (j ==0) {
dp[j] = dp[j]+grid[i][j];
} else {
dp[j] = Math.min(dp[j],dp[j-1])+grid[i][j];
}
}
}
return dp[dp.length-1];
}
}