算法分析与设计丨第十六周丨LeetCode(20)——Unique Paths II(Medium)
2017-12-18 11:08
351 查看
题目描述:
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 as
in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
The total number of unique paths is
Note: m and n will be at most 100.
题目解析:
动态规划。最开始的时候想的太复杂了,各种边界条件设置,后来看了别人的博客,发现其实和Unique Paths的判定条件一样,所以说有的时候不能想的太复杂。
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m = obstacleGrid.size();
int n = obstacleGrid[0].size();
vector<vector<int> > path(m,vector<int>(n,0));
for(int i = 0;i < m;++i)
{
for(int j = 0;j < n;j++)
{
if(obstacleGrid[i][j] == 1)
path[i][j] = 0;
else if(i == 0 && j == 0)
path[i][j] = 1;
else if(i == 0 && j > 0)
path[i][j] = path[i][j-1];
else if(i > 0 && j == 0)
path[i][j] = path[i-1][j];
else
path[i][j] = path[i-1][j] + path[i][j-1];
}
}
return path[m-1][n-1];
}
};
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 as
1and
0respectively
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 is
2.
Note: m and n will be at most 100.
题目解析:
动态规划。最开始的时候想的太复杂了,各种边界条件设置,后来看了别人的博客,发现其实和Unique Paths的判定条件一样,所以说有的时候不能想的太复杂。
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m = obstacleGrid.size();
int n = obstacleGrid[0].size();
vector<vector<int> > path(m,vector<int>(n,0));
for(int i = 0;i < m;++i)
{
for(int j = 0;j < n;j++)
{
if(obstacleGrid[i][j] == 1)
path[i][j] = 0;
else if(i == 0 && j == 0)
path[i][j] = 1;
else if(i == 0 && j > 0)
path[i][j] = path[i][j-1];
else if(i > 0 && j == 0)
path[i][j] = path[i-1][j];
else
path[i][j] = path[i-1][j] + path[i][j-1];
}
}
return path[m-1][n-1];
}
};
相关文章推荐
- 算法分析与设计——LeetCode:63. Unique Paths II
- 【LeetCode】(63)Unique Paths II(Medium)
- [Leetcode 63, Medium] Unique Paths II
- (算法分析Week12)Unique Paths II[Medium]
- 算法第14周Unique Paths II[medium]
- 【Leetcode】【Medium】Unique Paths II
- Medium 63题 Unique Paths II
- LeetCode-63-Unique Paths II(动规)-Medium
- [LeetCode]20. Unique Paths II唯一路径
- 算法分析与设计——LeetCode Problem.63 Unique Paths II
- Unique Paths II
- Unique Paths II
- 动态规划——62. Unique Paths[medium]
- Unique Paths II
- LeetCode OJ Unique Paths II
- [leetcode]Unique Paths II
- 63. Unique Paths II
- Unique Paths && Unique Paths II
- [LeetCode] Unique Paths II
- leetcode--Unique Paths && Unique Paths ii