Concise and standard solution


  • 0
    class Solution {
    public:
        int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
            int m=obstacleGrid.size(),n=obstacleGrid[0].size();
            vector<vector<int>> path(m,vector<int>(n));
            path[0][0]=obstacleGrid[0][0]==1?0:1;
            for(int i=1;i<m;i++)
                path[i][0]=obstacleGrid[i][0]==1?0:path[i-1][0];
            for(int i=1;i<n;i++)
                path[0][i]=obstacleGrid[0][i]==1?0:path[0][i-1];
            for(int i=1;i<m;i++)
                for(int j=1;j<n;j++)
                    path[i][j]=obstacleGrid[i][j]==1?0:path[i][j-1]+path[i-1][j];
            return path[m-1][n-1];
        }
    };

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.