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

LeetCode 90 Unique Paths II

2014-10-27 13:01 387 查看
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.

分析:

总体思路跟Unique Paths一样,因为有障碍物的存在,则要加多判断逻辑,有障碍物的为0就对了。

public class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
if(obstacleGrid==null || obstacleGrid.length==0 || obstacleGrid[0].length==0)
return 0;
int m = obstracleGrid.length;
int n = onstracleGrid[0].length;
int[] dp = new int
;
dp[0] = 1;//左上角各自不会有障碍物
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){//j从0开始为了判断障碍物
if(obstacleGrid[i][j] == 1)
dp[j] = 0;
else if(j>0)
dp[j] = dp[j-1]+dp[j];
}
}
return dp[n-1];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息