[LeetCode]63. 不同路径 II(java实现)动态规划
1. 题目
2. 读题(需要重点注意的东西)
思路(闫式dp分析法):
在此基础上,加一行判断语句,到障碍物直接跳过即可。
3. 解法
---------------------------------------------------解法---------------------------------------------------:
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int n = obstacleGrid.length;
int m = obstacleGrid[0].length;
int[][] f = new int[n][m];
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
if(i == 0 && j == 0 && obstacleGrid[i][j] == 0) f[i][j] = 1;
// 加一行判断语句即可
if(obstacleGrid[i][j] == 1) continue;
if(i - 1 >= 0 && obstacleGrid[i - 1][j] == 0) f[i][j] += f[i-1][j];
if(j - 1 >= 0 && obstacleGrid[i][j - 1] == 0) f[i][j] += f[i][j-1];
}
}
return f[n-1][m-1];
}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
- dp