Leetcode(62)(63) Unique Paths I II
来源:互联网 发布:unity3d 室内场景资源 编辑:程序博客网 时间:2024/05/22 11:54
经典的动态规划问题,Unique Paths I按如下方式填表,Unique Paths II稍微变化即可。
Unique Paths I 代码如下
class Solution {public: int uniquePaths(int m, int n) { vector<vector<int>> matrix(m, vector<int>(n)); for(int column = 0; column < n; column++) matrix[m - 1][column] = 1; for(int row = 0; row < m; row++) matrix[row][n - 1] = 1; for(int row = m - 2; row >= 0; row--) { for(int column = n - 2; column >= 0; column--) { matrix[row][column] = matrix[row][column + 1] + matrix[row + 1][column]; } } return matrix[0][0]; }};
Unique Paths II 代码如下
class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); if(1 == m && 1 == n) { if(1 == obstacleGrid[0][0]) return 0; else return 1; } vector<vector<int>> matrix(m, vector<int>(n)); if(1 ==obstacleGrid[m - 1][n - 1]) matrix[m - 1][n - 1] = 0; else matrix[m - 1][n - 1] = 1; for(int column = n - 2; column >= 0; column--) { if(1 == obstacleGrid[m - 1][column]) matrix[m - 1][column] = 0; else matrix[m - 1][column] = matrix[m - 1][column + 1]; } for(int row = m - 2; row >= 0; row--) { if(1 == obstacleGrid[row][n - 1]) matrix[row][n - 1] = 0; else matrix[row][n - 1] = matrix[row + 1][n - 1]; } for(int row = m - 2; row >= 0; row--) { for(int column = n - 2; column >= 0; column--) { if(1 == obstacleGrid[row][column]) { matrix[row][column] = 0; }else { matrix[row][column] = matrix[row][column + 1] + matrix[row + 1][column]; } } } return matrix[0][0]; }};
0 0
- leetcode-62&63 Unique Paths I & II
- Leetcode(62)(63) Unique Paths I II
- [Leetcode] #62#63 Unique Paths I & II
- [LeetCode]Unique Paths I & II
- 【LeetCode】Unique Paths I && II
- Unique Paths I | II leetcode
- LeetCode | Unique Paths I,II
- LeetCode 62 Unique Paths & 63 Unique Paths II
- LeetCode Solutions : Unique Paths I & II
- LeetCode 63: Unique Paths II
- [leetcode 63] Unique Paths II
- [LeetCode 63]Unique Paths II
- leetcode || 63、Unique Paths II
- Unique Paths II - LeetCode 63
- Leetcode[63]-Unique Paths II
- Leetcode #63 Unique Paths II
- leetcode 63: Unique Paths II
- Leetcode#63||Unique Paths II
- 选择排序
- zoj1201
- Fragment FragmentManager FragmentTransaction 详解
- HDOJ_Problem Archive_1005_Number Sequence
- 轻松上Google
- Leetcode(62)(63) Unique Paths I II
- IT架构——降低成本和复杂性
- Android特效View之二之 闪闪发光Shimmer字体特效
- BZOJ1068
- The Combinatorica Project 组合数学
- leetcode之路006 ZigZag Conversion
- JS 解析XML文件
- Android实战简易教程-第二十八枪(基于Bmob实现头像图片设置和网络上传功能!)
- leetcode[116]:Populating Next Right Pointers in Each Node