上题会做,这题就会做吧,只要把障碍物的地方的map值设置为0,以及一开始的遍历注意一下就可以了

class Solution {
public:
int map[100][100];
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m=obstacleGrid[0].size();
int n=obstacleGrid.size();
if(obstacleGrid[0][0]==0)map[0][0]=1;
for(int i=1;i<m;++i){
if(obstacleGrid[0][i]==1||map[0][i-1]==0)map[0][i]=0;
else map[0][i]=1;
}
for(int i=1;i<n;++i){
if(obstacleGrid[i][0]==1||map[i-1][0]==0)map[i][0]=0;
else map[i][0]=1;
}
for(int i=1;i<n;++i){
for(int j=1;j<m;++j){
if(obstacleGrid[i][j])map[i][j]=0;
else map[i][j]=map[i-1][j]+map[i][j-1];
}
}
return map[n-1][m-1];
}
};