Unique Paths II

来源:互联网 发布:如何学习书法 知乎 编辑:程序博客网 时间:2024/06/11 03:48
class Solution {public:    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid)     {                const int m=obstacleGrid.size();        const int n=obstacleGrid[0].size();        if(obstacleGrid[0][0]==1 || obstacleGrid[m-1][n-1]==1)            return 0;        vector<vector<int>> dp(m,vector<int>(n,0));        for(int i=0;i<m;++i)        {            if(obstacleGrid[i][0]==1)                break;            else                dp[i][0]=1;        }        for(int j=0;j<n;++j)        {            if(obstacleGrid[0][j]==1)                break;            else                dp[0][j]=1;        }        for(int i=1;i<m;++i)        {            for(int j=1;j<n;++j)            {                if(obstacleGrid[i-1][j]==1&& obstacleGrid[i][j-1]!=1)                    dp[i][j]=dp[i][j-1];                if(obstacleGrid[i][j-1]==1 && obstacleGrid[i-1][j]!=1)                    dp[i][j]=dp[i-1][j];                if(obstacleGrid[i-1][j]!=1&& obstacleGrid[i][j-1]!=1)                    dp[i][j]=dp[i][j-1]+dp[i-1][j];                            }        }                return dp[m-1][n-1];    }};

0 0
原创粉丝点击