题目链接:https://leetcode.cn/problems/unique-paths-ii/description/

cpp
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid)
{
int m = obstacleGrid.size(), n = obstacleGrid[0].size();
// 1. 创建 dp 表
vector<vector<int>> dp(m + 1, vector<int>(n + 1));
// 2. 初始化
dp[1][0] = 1;
// 3. 填表
for (int i = 1; i <= m; ++i)
for (int j = 1; j <= n; ++j)
if (obstacleGrid[i - 1][j - 1] == 0)
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
// 4. 返回值
return dp[m][n];
}
};