Unique Paths II

来源:互联网 发布:linux怎么打开终端 编辑:程序博客网 时间:2024/04/29 03:42

和上题一样

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



0 0