题目描述
Follow up for "Unique Paths":
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as1and0respectively in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
[ [0,0,0], [0,1,0], [0,0,0] ]
The total number of unique paths is2.
Note: m and n will be at most 100.
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) {
int m=obstacleGrid.size();
int n=obstacleGrid[0].size();
vector<vector<int>> dp(m,vector<int>(n,0));
for(int i=0;i<m;i++){
if(obstacleGrid[i][0]!=1)
dp[i][0]=1;
else
break;
}
for(int j=0;j<n;j++){
if(obstacleGrid[0][j]!=1)
dp[0][j]=1;
else
break;
}
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
if(obstacleGrid[i][j]==1)
dp[i][j]=0;
else
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}
};
类似题目: LeetCode--unique-paths
本文介绍了一个基于动态规划算法解决的问题——在包含障碍物的网格中计算从起点到终点的不同路径数量。文章详细解释了实现这一功能的具体步骤,并提供了一段C++代码作为示例。
139

被折叠的 条评论
为什么被折叠?



