题意
传送门 63. 不同路径 II
题解
d p [ i ] [ j ] dp[i][j] dp[i][j] 代表 ( 0 , 0 ) (0,0) (0,0) 出发到 ( i , j ) (i,j) (i,j) 的路径数
d p [ i ] [ j ] = d p [ i ] [ j − 1 ] + d p [ i − 1 ] [ j ] dp[i][j] = dp[i][j - 1] + dp[i - 1][j] dp[i][j]=dp[i][j−1]+dp[i−1][j]
class Solution
{
public:
int uniquePathsWithObstacles(vector<vector<int>> &obstacleGrid)
{
int n = obstacleGrid.size(), m = obstacleGrid[0].size();
vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
dp[1][0] = 1;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (obstacleGrid[i - 1][j - 1] != 1) dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
}
}
return dp[n][m];
}
};