Unique Paths II
2016-07-27 20:02
465 查看
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.
题意:如果地图上有障碍物,此障碍物不能通过 在数组中用1表示障碍物,求从起点到终点有多少种走法。
思路
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.
Note: m and n will be at most 100.
题意:如果地图上有障碍物,此障碍物不能通过 在数组中用1表示障碍物,求从起点到终点有多少种走法。
思路
1. 如果没有障碍
val[i][0] = 1 val[0][j] = 1 val[i][j] = val[i-1][j] + val[i][j-1] 2. 有了障碍后 如果obstacle[i][j] = 1 val[i][j] = 1 否则 tmp = obstacle[i-1][j] == 1 ? 0 : val[i-1][j] tmp = obstacle[i][j-1] == 1 ? tmp : tmp + val[i-1][j-1] val[i][j] = tmp
class Solution { public: int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) { int row = obstacleGrid.size(); int col = obstacleGrid[0].size(); int token = 1; int val[row][col]; for (int j = 0; j < col; ++j) { if(obstacleGrid[0][j] == 1) token = 0; val[0][j] = token; } token = 1; for (int i = 0; i < row; ++i) { if(obstacleGrid[i][0] == 1) token = 0; val[i][0] = token; } for (int i = 1; i < row; ++i) { for(int j = 1; j < col; ++j) { if (obstacleGrid[i][j] == 1) val[i][j] = 0; else { int tmp = obstacleGrid[i-1][j] == 1 ? 0 :val[i-1][j]; tmp = obstacleGrid[i][j-1] == 1 ? tmp : tmp + val[i][j-1]; val[i][j] = tmp; } } } return val[row-1][col-1]; } };
相关文章推荐
- Unique Paths
- 河南多校暑期训练-恢复赛 <字典树,最短路,queue,map,模拟,思维>
- 【priority_queue<int,vector<int>,greater<int>>优先队列 按照由小到大顺序】
- Question( category_id 关联 category_name)
- iOS -最全UIButton详解
- October query(数据库查询语句)
- Xilium.CefGlue怎么使用Js调用C#方法
- button上多一块蓝色
- UISearchBar的placeholder文字上移问题
- UIsearchBar的placeholder字体颜色和大小
- IPhone 自定义 UITableViewCell 行缩进
- reason: 'couldn't find a common superview for <UIView: 0x7ffc2e303270; frame = (0 0; 0 0); layer = <
- Arduino 权威指南 第二版 第二章 2.3 使用浮点数
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- MJRefresh的上拉加载的隐藏
- 快速熟悉 PyQt5 与 Eric6 的极速 GUI 开发
- UITableView代理方法执行顺序测试
- 简单的UIScrollView循环滑动
- xib/StoryBoard中设置与Bottom Layout Guide相关的约束,push进来的闪一下
- 第三章--不得不学的Fragment