欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[leetcode]63. 不同路径 II

程序员文章站 2022-07-16 12:00:32
...

[leetcode]63. 不同路径 II
[leetcode]63. 不同路径 II

跟不同路径1差不多(类似杨辉三角)

class Solution {
    typedef long long ll;
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int m = obstacleGrid.size(), n = obstacleGrid[0].size();
        vector<vector<ll>>dp(m, vector<ll>(n, 0));
        for(int i = 0; i < m; i++)
        {
            if(obstacleGrid[i][0] == 1)
            {
                break;  //跳出后面的都是0
            }
            else
            {
                dp[i][0] = 1;
            }
        }
        for(int j = 0; j < n; j++)
        {
            if(obstacleGrid[0][j] == 1)
            {
                break;//跳出后面的都是0
            }
            else
            {
                dp[0][j] = 1;
            }
        }
        for(int i = 1; i < m; i++)
        {
            for(int j = 1; j < n; j++)
            {
                if(obstacleGrid[i][j] == 0)
                {
                    dp[i][j] = dp[i-1][j] + dp[i][j-1];
                }//else dp[i][j] = 0  但已经是0了没必要
            }
        }
        return dp[m-1][n-1];
    }
};

[leetcode]63. 不同路径 II

相关标签: leetcode