- 题目
- 示例
- 算法
- 代码
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
if (obstacleGrid[m-1][n-1] == 1) {
return 0;
}
int[][] dp = new int[m][n];
dp[0][0] = 1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i - 1 >= 0 && obstacleGrid[i-1][j] != 1) {
dp[i][j] += dp[i-1][j];
}
if (j - 1 >= 0 && obstacleGrid[i][j-1] != 1) {
dp[i][j] += dp[i][j-1];
}
}
}
return dp[m-1][n-1];
}
}