Wednesday, February 12, 2014

[leetcode][**] Unique PathII


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.
My Code:

 
 int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) {
        int m = obstacleGrid.size();
        if(m == 0) return 0;
        int n = obstacleGrid[0].size();
        if(n == 0) return 0;
        int table[m][n];
        for(int i = 0; i < m; ++i){
            for(int j = 0; j < n; ++j){
                if(obstacleGrid[i][j] == 1) {
                    table[i][j] = 0;
                    continue;
                }
                if(i == 0 && j == 0) 
                    table[i][j] = 1;
                else if(i == 0 && j != 0){
                    table[i][j] = table[i][j-1];
                } 
                else if(i != 0 && j == 0) {
                        table[i][j] = table[i-1][j];
                }
                else{
                    table[i][j] = table[i-1][j]+table[i][j-1];
                }
            }
        }
        return table[m-1][n-1];
    }

No comments:

Post a Comment