class Solution {
public int uniquePathsWithObstacles(int[][] grid) {
int m = grid.length, n = grid[0].length;
int[][] mat = new int[m][n];
if (grid[0][0] == 1) {
return 0;
}
mat[0][0] = 1;
for (int i = 1; i < m; i++) {
if (mat[i - 1][0] == 1 && grid[i][0] == 0) {
mat[i][0] = 1;
}
}
for (int i = 1; i < n; i++) {
if (mat[0][i - 1] == 1 && grid[0][i] == 0) {
mat[0][i] = 1;
}
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
if (grid[i][j] == 1) {
continue;
}
mat[i][j] = mat[i - 1][j] + mat[i][j - 1];
}
}
return mat[m - 1][n - 1];
}
}
63. 不同路径 II
最新推荐文章于 2024-08-06 20:40:43 发布