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
.
Note: m and n will be at most 100.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 |
public class Solution { public
int uniquePathsWithObstacles( int [][] obstacleGrid) { int
path = 0 ; int
row = obstacleGrid.length; if (row > 0 ){ int
column = obstacleGrid[ 0 ].length; int [][] paths = new
int [row][column]; if (obstacleGrid[ 0 ][ 0 ] != 1 ){ paths[ 0 ][ 0 ] = 1 ; for ( int
i = 1 ; i < row; ++i){ if (obstacleGrid[i][ 0 ] != 1 ) paths[i][ 0 ] = paths[i - 1 ][ 0 ]; else paths[i][ 0 ] = 0 ; } for ( int
i = 1 ; i < column; ++i){ if (obstacleGrid[ 0 ][i] != 1 ) paths[ 0 ][i] = paths[ 0 ][i - 1 ]; else paths[ 0 ][i] = 0 ; } for ( int
i = 1 ; i < row; ++i){ for ( int
j = 1 ; j < column; ++j){ if (obstacleGrid[i][j] != 1 ) paths[i][j] = paths[i - 1 ][j] + paths[i][j - 1 ]; else paths[i][j] = 0 ; } } path = paths[row - 1 ][column - 1 ]; } } return
path; } } |
leetcode--Unique Paths II,布布扣,bubuko.com
原文:http://www.cnblogs.com/averillzheng/p/3774551.html