063 - Unique Paths II
2015-12-30 16:35
423 查看
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
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.
int uniquePathsWithObstacles(int** grid, int row, int col)
{
int i, j;
if (!row || !col) return 0;
for (i = 0; i < col; i++) {
grid[0][i] = grid[0][i] ? -1 : 1;
if (i && grid[0][i - 1] == -1) grid[0][i] = -1;
}
for (i = 1; i < row; i++) {
grid[i][0] = grid[i][0] ? -1 : 1;
if (grid[i - 1][0] == -1) grid[i][0] = -1;
}
for (i = 1; i < row; i++)
for (j = 1; j < col; j++) {
if (grid[i][j] == 1) {
grid[i][j] = -1;
continue;
}
if (grid[i][j - 1] > 0) grid[i][j] += grid[i][j - 1];
if (grid[i - 1][j] > 0) grid[i][j] += grid[i - 1][j];
//if (!grid[i][j]) grid[i][j] = -1;
}
return grid[row - 1][col - 1] > 0 ? grid[row - 1][col - 1] : 0;
}
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.
int uniquePathsWithObstacles(int** grid, int row, int col)
{
int i, j;
if (!row || !col) return 0;
for (i = 0; i < col; i++) {
grid[0][i] = grid[0][i] ? -1 : 1;
if (i && grid[0][i - 1] == -1) grid[0][i] = -1;
}
for (i = 1; i < row; i++) {
grid[i][0] = grid[i][0] ? -1 : 1;
if (grid[i - 1][0] == -1) grid[i][0] = -1;
}
for (i = 1; i < row; i++)
for (j = 1; j < col; j++) {
if (grid[i][j] == 1) {
grid[i][j] = -1;
continue;
}
if (grid[i][j - 1] > 0) grid[i][j] += grid[i][j - 1];
if (grid[i - 1][j] > 0) grid[i][j] += grid[i - 1][j];
//if (!grid[i][j]) grid[i][j] = -1;
}
return grid[row - 1][col - 1] > 0 ? grid[row - 1][col - 1] : 0;
}
相关文章推荐
- com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: callId, status
- 062 - Unique Paths
- how to write one native program based on android source build system
- 关于UIView的autoresizingMask属性的研究
- Android漂亮的UI库集合
- 给UICollectionView添加头视图
- 70.UISearchController(搜索栏)
- UIButton要注意的地方
- PHP文件包含语句 include、include_once、require、require_once
- 292. Nim Game My Submissions Question
- php中include和require的区别
- Access restriction: The constructor SunJCE() is not accessible due to restriction on required librar
- 百度在线文本编辑器ueditor
- 自动布局(FDTemplateLayoutCell的使用)
- UICollectionView的简单使用和常用代理方法
- easyui datagrid 批量编辑和提交数据
- iOS UITableView 和 UICollectionView 设置默认选中状态
- unCheck Size Classes requires Auto Layout 详解
- AFNetWorking.a was built for newer ios version(9.1) then being is linked(7.0)
- CodeForces 305B Continued Fractions【递推的分式】