您的位置:首页 > 产品设计 > UI/UE

[LeetCode] Unique Paths II

2014-04-23 12:13 281 查看
Total Accepted: 7514 Total Submissions: 27719

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.

public class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
if (m == 0) return 0;
int n = obstacleGrid[0].length;
if (n == 0) return 0;

int[] dp = new int
;

if (obstacleGrid[0][0] == 1) return 0;

for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (j == 0 && i == 0)               dp[j] = 1;
else if (obstacleGrid[i][j] == 1)   dp[j] = 0;
else        dp[j] = (i > 0 ? dp[j] : 0) + (j > 0 ? dp[j-1] : 0);
}
}

return dp[n-1];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息