63. Unique Paths II
2017-11-05 20:34
232 查看
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
第二次,通过自己的独立思考解决了一道题。成就感不小。但是百度之后,似乎有更优的解决方案。开始主要是vector使用的问题。容器的使用没有我像想中那么熟练。解题思路:主要是在Unique Paths的基础之上,加上了一些条件。
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m,n;
m=obstacleGrid.size();
n=obstacleGrid[0].size();
vector<vector<int>> nums;
nums.resize(m);
for(int i=0;i<m;i++)
nums[i].resize(n);
for(int i=0;i<m;i++)
{
if(obstacleGrid[i][0]==1)
{
nums[i][0]=0;
for(int j=i;j<m;j++)
nums[j][0]=0;
break;
}
else
nums[i][0]=1;
}
for(int i=0;i<n;i++)
{
if(obstacleGrid[0][i]==1)
{
nums[0][i]=0;
for(int j=i;j<n;j++)
nums[0][j]=0;
break;
}
else
nums[0][i]=1;
}
if((m-1)>0&&(n-1)>0)
{
for(int i=1;i<m;i++)
{
for(int j=1;j<n;j++)
{
if(obstacleGrid[i][j]==1)
nums[i][j]=0;
else
nums[i][j]=nums[i][j-1]+nums[i-1][j];
}
}
}
return nums[m-1][n-1];
}
};
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.
第二次,通过自己的独立思考解决了一道题。成就感不小。但是百度之后,似乎有更优的解决方案。开始主要是vector使用的问题。容器的使用没有我像想中那么熟练。解题思路:主要是在Unique Paths的基础之上,加上了一些条件。
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m,n;
m=obstacleGrid.size();
n=obstacleGrid[0].size();
vector<vector<int>> nums;
nums.resize(m);
for(int i=0;i<m;i++)
nums[i].resize(n);
for(int i=0;i<m;i++)
{
if(obstacleGrid[i][0]==1)
{
nums[i][0]=0;
for(int j=i;j<m;j++)
nums[j][0]=0;
break;
}
else
nums[i][0]=1;
}
for(int i=0;i<n;i++)
{
if(obstacleGrid[0][i]==1)
{
nums[0][i]=0;
for(int j=i;j<n;j++)
nums[0][j]=0;
break;
}
else
nums[0][i]=1;
}
if((m-1)>0&&(n-1)>0)
{
for(int i=1;i<m;i++)
{
for(int j=1;j<n;j++)
{
if(obstacleGrid[i][j]==1)
nums[i][j]=0;
else
nums[i][j]=nums[i][j-1]+nums[i-1][j];
}
}
}
return nums[m-1][n-1];
}
};
相关文章推荐
- LeetCode 63 Unique Paths II
- 63. Unique Paths II
- [63]Unique Paths II
- LeetCode(63) Unique Paths II
- 63. Unique Paths II
- LeetCode 63 --- Unique Paths II
- Middle-题目61:63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- LeetCode_OJ【63】Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- Leetcode(62)(63) Unique Paths I II
- [LeetCode 63] Unique Paths II
- leetcode || 63、Unique Paths II
- LeetCode 63: Unique Paths II
- leetcode_question_63 Unique Paths II
- 63 Unique Paths ii
- leetcode_63题——Unique Paths II(动态规划)
- 63. Unique Paths II