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

LeetCode——Unique Paths II

2014-11-15 17:27 246 查看


Unique Paths II

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.

Java代码:

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

if(m==1 && n==1)
if(obstacleGrid[m-1][n-1] ==0)
return 1;
else
return 0;

for(int i=0;i<m;i++)
if(obstacleGrid[i][0] ==1)
{
sum[i][0]=0; break;
}else{
sum[i][0]=1;
}

if(n==1)return sum[m-1][n-1];

if(m==1)
{
for(int j =0;j<n;j++)
if(obstacleGrid[0][j] ==1)
return 0;
return 1;
}

for(int j =1;j<n;j++)
for(int i=0;i<m;i++)
if(i==0)
{  if(obstacleGrid[i][j] == 0)
sum[i][j] = sum[i][j-1];
else
sum[i][j] =0;
}
else{
if(obstacleGrid[i][j] == 0)
sum[i][j] =sum[i][j-1] + sum[i-1][j];
else
sum[i][j] =0;
}

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