LeetCode Unique Paths II small variation in Unique Paths
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int i,j;
int m=obstacleGrid.size();
if(m==0)
return 0;
int n=obstacleGrid[0].size();
if(n==0)
return 0;
if(m<=1 && n<=1 && obstacleGrid[0][0]==0)
return 1;
if(obstacleGrid[0][0])
return 0;
i=1;
while(i<n && obstacleGrid[0][i]==0)
{
obstacleGrid[0][i]=1;
i++;
}
while(i<n){
obstacleGrid[0][i]=0;
i++;
}
i=1;
while(i<m && obstacleGrid[i][0]==0)
{
obstacleGrid[i][0]=1;
i++;
}
while(i<m){
obstacleGrid[i][0]=0;
i++;
}
if(m==1)
return obstacleGrid[0][n-1];
if(n==1)
return obstacleGrid[m-1][0];
for(i=1;i<m;i++){
for(j=1;j<n;j++){
if(obstacleGrid[i][j]==0)
obstacleGrid[i][j]=obstacleGrid[i][j-1]+obstacleGrid[i-1][j];
else
obstacleGrid[i][j]=0;
}
}
return obstacleGrid[m-1][n-1];
}
};
No comments:
Post a Comment