题目:
题解:
一种可行的方案是,因为障碍物无法到达也无法从障碍物过来,所以遇上障碍物时将对应的dp位置设为0即可,这样非常巧妙简单地解决了这个问题。
cpp
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int dp[105][105]={0};
dp[0][1]=1;
for(int i=1;i<=obstacleGrid.size();i++){
for(int j=1;j<=obstacleGrid[0].size();j++){
if(obstacleGrid[i-1][j-1]==1)continue;
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[obstacleGrid.size()][obstacleGrid[0].size()];
}