Saturday, 19 December 2015

LeetCode Unique Paths II small variation in Unique Paths

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