题目描述

DP

- 当障碍,DPij填0
- 无障碍,dp分四个区域进行填充
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid[0].length, n = obstacleGrid.length;
int[][] dp = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (obstacleGrid[i][j] == 1) {
dp[i][j] = 0;
} else {
if (i == 0 && j == 0) {
dp[i][j] = 1;
} else if (i == 0 && j - 1 >= 0) {
dp[i][j] = dp[i][j - 1];
} else if (j == 0 && i - 1 >= 0) {
dp[i][j] = dp[i - 1][j];
} else {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
}
return dp[n - 1][m - 1];
}
}