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

leetcode -- Unique Paths II

2013-08-20 22:09 363 查看
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.

[解题思路]

本题与上题思路差不多,直接使用DP来解,唯一区别在对obstacle的处理上,当遇到obstacle时将该位置置为0

表示该位置不可以到达[m]

public int uniquePathsWithObstacles(int[][] obstacleGrid) {
// Start typing your Java solution below
// DO NOT write main() function
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[][] steps = new int[m+2][n+2];
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
steps[i][j] = 0;
}
}
steps[m][n+1] = 1;
for(int i = m; i >= 1; i--){
for(int j = n; j >= 1; j--){
if(obstacleGrid[i - 1][j - 1] == 1){
steps[i][j] = 0;
continue;
}
steps[i][j] = steps[i+1][j] + steps[i][j+1];
}
}
return steps[1][1];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: