题目:63. 不同路径 II
思路:动态规划。
在上一题的基础上,加一条判断,如果有障碍,dp置为0即可。
代码:
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[] dp = new int[n];
dp[0] = obstacleGrid[0][0] == 0? 1: 0;
for (int i = 0; i < m; i ++) {
for (int j = 0; j < n; j ++) {
if (obstacleGrid[i][j] == 1) {
dp[j] = 0;
}
else {
if (j - 1 >= 0) {
dp[j] += dp[j - 1];
}
}
}
}
return dp[n - 1];
}
}