63. Unique Paths II
来源:互联网 发布:代办淘宝商城 编辑:程序博客网 时间:2024/05/22 05:28
Problem
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 1 and 0 respectively 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.
Solution
二维数组
先用二维数组实现,思路清晰。
不过,实现代码量好大…
class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { if (obstacleGrid[0][0] == 1) { return 0; } int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); vector<vector<int>> dp(100, vector<int>(100, 0)); //关于vector<vector<int>>初始化 for (int i = 0; i != m; ++i) { if (obstacleGrid[i][0] == 0) { dp[i][0] = 1; } else { //如果初始化边时有障碍,后续则为0 dp[i][0] = 0; break; } } for (int j = 0; j != n; ++j) { if (obstacleGrid[0][j] == 0) { dp[0][j] = 1; } else { dp[0][j] = 0; break; } } for (int i = 1; i != m; ++i) { for (int j = 1; j != n; ++j) { dp[i][j] = (obstacleGrid[i][j] == 1 ? 0 : dp[i-1][j] + dp[i][j-1]); } } return dp[m-1][n-1]; }};
可能是因为test cases太少的缘故
这代码跑得还挺快。
一维数组
稍等。
0 0
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- 63. Unique Paths II
- mysql分组排序
- Android 上下联动标题渐变动画
- angular把echarts封装为指令(配合requirejs)
- Highway Network
- Kendo UI常用示例汇总(十八)
- 63. Unique Paths II
- Go语言操作Redis
- 关于jQuery基础有感
- PHP设计模式之:工厂模式
- python windows错误代码 5
- 残差神经网络
- NSTimer的用法
- 将图片保存到相册
- 第二周项目0-宣告“主权”