Unique Paths II
Total Accepted: 31019 Total Submissions: 110866My SubmissionsFollow 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.
SOULUTION 1:
跟LeetCode: Unique Paths 解题报告 相比,只不过是判断一下当前是不是block,如果是block,直接设置D[i][j] 是0就好了 也就是不可达。 同样在3分钟之内Bug free 秒答,哦耶!
1 public class Solution { 2 public int uniquePathsWithObstacles(int[][] obstacleGrid) { 3 // 1150 4 if (obstacleGrid == null || obstacleGrid.length == 0 || obstacleGrid[0].length == 0) { 5 return 0; 6 } 7 8 int rows = obstacleGrid.length; 9 int cols = obstacleGrid[0].length; 10 11 int[][] D = new int[rows][cols]; 12 13 for (int i = 0; i < rows; i++) { 14 for (int j = 0; j < cols; j++) { 15 D[i][j] = 0; 16 if (obstacleGrid[i][j] == 1) { 17 D[i][j] = 0; 18 } else { 19 if (i == 0 && j == 0) { 20 D[i][j] = 1; 21 } 22 23 if (i != 0) { 24 D[i][j] += D[i - 1][j]; 25 } 26 27 if (j != 0) { 28 D[i][j] += D[i][j - 1]; 29 } 30 } 31 } 32 } 33 34 return D[rows - 1][cols - 1]; 35 } 36 }