Thought:
DP. Be careful with the initialization.
Code:
public class Solution {
public int minPathSum(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
int[][] result = new int[m + 1][n + 1];
for (int i = 0; i < m + 1; i++) {
result[i][0] = Integer.MAX_VALUE;
}
for (int j = 0; j < n + 1; j++) {
result[0][j] = Integer.MAX_VALUE;
}
result[0][1] = result[1][0] = 0;
for (int i = 1; i < m + 1; i++) {
for (int j = 1; j < n + 1; j++) {
result[i][j] = Math.min(result[i - 1][j], result[i][j - 1]) + grid[i - 1][j - 1];
}
}
return result[m][n];
}
}
No comments:
Post a Comment