63. 不同路径 II

63. 不同路径 II


题目链接:63. 不同路径 II

代码如下:

//动态规划
class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int dp[obstacleGrid.size()][obstacleGrid[0].size()];

        for(int i=0;i<obstacleGrid.size();i++)
            for(int j=0;j<obstacleGrid[0].size();j++)
                dp[i][j]=0;

        for(int i=0;i<obstacleGrid.size()&&obstacleGrid[i][0]==0;i++)
            dp[i][0]=1;
        for(int i=0;i<obstacleGrid[0].size()&&obstacleGrid[0][i]==0;i++)
            dp[0][i]=1;

        for(int i=1;i<obstacleGrid.size();i++)
        {
            for(int j=1;j<obstacleGrid[0].size();j++)
            {
                if(obstacleGrid[i][j]==0)//没有障碍物
                    dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
        return dp[obstacleGrid.size()-1][obstacleGrid[0].size()-1];
    }
};

你可能感兴趣的:(leetcode,c++)