Unique Paths II

Follow up for "Unique Paths":

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,

There is one obstacle in the middle of a 3x3 grid as illustrated below.

[   [0,0,0],   [0,1,0],   [0,0,0] ] 

The total number of unique paths is 2.

Note: m and n will be at most 100.

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

你可能感兴趣的:(unique)