115 · 不同的路径 II Unique Paths II
描述
Follow up for “Unique Paths”:
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as 1 and 0 respectively in the grid.
Example 2:
Input:
obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
Output:
2
Explanation:
Only 2 different path
public class Solution {
/**
* @param obstacleGrid: A list of lists of integers
* @return: An integer
*/
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
// write your code here
int m = obstacleGrid.length , n = obstacleGrid[0].length ;
int[][] f = new int[m][n] ;
if(obstacleGrid[0][0] == 1){
return 0 ;
}
f[0][0] = 1 ;
for(int i = 0 ; i < m ; i++){
for(int j = 0 ; j < n ; j++){
if(obstacleGrid[i][j] == 1){
f[i][j] = 0 ;
}else{
if(j>0 && i == 0 ){
f[i][j] = f[i][j-1] ;
}else if(i>0 && j == 0){
f[i][j] = f[i-1][j] ;
}else if (i > 0 && j > 0){
f[i][j] = f[i-1][j] + f[i][j-1] ;
}
}
}
}
return f[m-1][n-1] ;
}
}
这篇文章讨论了如何在含有障碍物的网格中计算独特的路径数量,通过动态规划的方法解决二维空间中的路径问题,给出一个名为Solution的Java代码实现。重点在于处理障碍元素并保持路径计数的准确性。
201

被折叠的 条评论
为什么被折叠?



