63. Unique Paths II
Last updated
Last updated
Input:
[
[0,0,0],
[0,1,0],
[0,0,0]
]
Output: 2
Explanation:
There is one obstacle in the middle of the 3x3 grid above.
There are two ways to reach the bottom-right corner:
1. Right -> Right -> Down -> Down
2. Down -> Down -> Right -> Rightclass Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
for(int i=0;i<obstacleGrid[0].size();++i){
if(obstacleGrid[0][i]==1)
for(;i<obstacleGrid[0].size();++i)
obstacleGrid[0][i]=0;
else
obstacleGrid[0][i]=1;
}
//obstacleGrid[0][0]=0;
for(int i=1;i<obstacleGrid.size();++i){
if(obstacleGrid[i][0]==1||obstacleGrid[0][0]==0)
for(;i<obstacleGrid.size();++i)
obstacleGrid[i][0]=0;
else
obstacleGrid[i][0]=1;
}
for(int i=1;i<obstacleGrid.size();++i){
for(int j=1;j<obstacleGrid[0].size();++j){
if(obstacleGrid[i][j]==1)
obstacleGrid[i][j]=0;
else
obstacleGrid[i][j]=obstacleGrid[i-1][j]+obstacleGrid[i][j-1];
}
}
return obstacleGrid.back().back();
}
};