//动态规划方程: res[j]+=res[j-1]
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
if(obstacleGrid.size()==0||obstacleGrid[0].size()==0)
return 0;
int len=obstacleGrid[0].size();
int res[len]={0}; //全部初始化为0
res[0]=1;//不考虑障碍的话,初值为1
for(int i=0;i<obstacleGrid.size();i++)
{
for(int j=0;j<obstacleGrid[0].size();j++){
if(obstacleGrid[i][j]==1){
res[j]=0; //考虑障碍,赋值为0
}
else{
if(j>0)
res[j]+=res[j-1]; //每一行的数都是前面一个元素的值加上已有的值
}
}
}
return res[obstacleGrid[0].size()-1];
}
};