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] ;
}
}