由于障碍的出现,需要改动一下代码。需要注意的是在初始化第一行时如果前面出现障碍,后面必须都是0
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int row = obstacleGrid.length;
int col = obstacleGrid[0].length;
int[] dp = new int[col];
for(int i = 0 ;i<col;i++)
{
if(obstacleGrid[0][i]==1)
{
for(int j = i ;j<col;j++)
{
dp[j]=0;
}
break;
}
else
dp[i]=1;
}
for(int i = 1 ;i<row;i++)
{
for(int j = 0 ;j<col;j++)
{
if(obstacleGrid[i][j]==0)
dp[j]=j==0?dp[0]:dp[j]+dp[j-1];
else
dp[j]=0;
}
}
return dp[col-1];
}
}
网友评论