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.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
[ [0,0,0], [0,1,0], [0,0,0] ]
The total number of unique paths is 2
.
1 class Solution { 2 public int uniquePathsWithObstacles(int[][] obstacleGrid) { 3 int rows = obstacleGrid.length; 4 int cols = obstacleGrid[0].length; 5 for(int i = 0; i < rows;i++){ 6 for (int j = 0; j < cols ;j++){ 7 if(obstacleGrid[i][j]==1) 8 obstacleGrid[i][j] = 0; 9 else if (i==0&& j==0) 10 obstacleGrid[i][j] = 1; 11 else if (i==0) 12 obstacleGrid[i][j] = obstacleGrid[i][j-1]*1; //边界,没有路径了,要么是0,要么是1 13 14 else if (j == 0) 15 obstacleGrid[i][j] = obstacleGrid[i-1][j]*1; 16 else 17 obstacleGrid[i][j] = obstacleGrid[i-1][j] + obstacleGrid[i][j-1]; 18 } 19 } 20 return obstacleGrid[rows-1][cols-1]; 21 } 22 }