一、题目
二、代码
class Solution
{
public:
//这里的区别在于 地图由obstacleGrid给出
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid)
{
int i,j;
int m=obstacleGrid.size();
int n=obstacleGrid[0].size();
vector<vector<int>> dp(m, vector<int>(n, 0)); //这样就创建了长度为n 高度为m的数组
for(i=0;i<m;i++)
{
if(obstacleGrid[i][0]==1) break;
dp[i][0]=1;
}
for(i=0;i<n;i++)
{
if(obstacleGrid[0][i]==1) break;
dp[0][i]=1;
}
for(i=1;i<m;i++)
{
for(j=1;j<n;j++)
{
dp[i][j]=dp[i-1][j]+dp[i][j-1];
if(obstacleGrid[i][j]==1) dp[i][j]=0;
}
}
std::cout<<"m "<<m<<std::endl;
std::cout<<"n "<<n<<std::endl;
return dp[m-1][n-1];
}
};