63. Unique Paths II
来源:互联网 发布:免费网络云盘哪个好用 编辑:程序博客网 时间:2024/05/16 12:47
此题与Unique Paths的解法一样,f[j]表示从(0,0)到(当前row, j)有几种走法,上面来的就是自己,左边来的已经算好了,所以 f[j] = f[j] + f[j – 1]。需要特别注意f的初始化值和循环的起始值。下面的这段代码非常精妙,需要好好理解掌握。代码如下:
class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m = (int)obstacleGrid.size(), n = (int)obstacleGrid[0].size(); // one way DP, f[i] means from (0, 0) to (currRow, i) has how many ways vector<int> f(n, 0); f[0] = obstacleGrid[0][0] ? 0 : 1; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { //comes from above or left if (obstacleGrid[i][j]) { f[j] = 0; } else { if (j == 0) //first col only from above f[j] = f[j]; else f[j] = f[j] + f[j - 1]; //这一行代码逻辑非常微妙 } } } return f[n - 1]; }};
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分组后取前几条数据
- pandas RESHAPING AND PIVOT TABLES
- 检索 COM 类工厂中 CLSID 为 {E5FF9F62-0E7C-4372-8AD5-DA7D2418070C} 的组件时失败,原因是出现以下错误: 80040154。
- cocos2dx 如何把文件保存到本地
- android 安装与ADT安装
- 63. Unique Paths II
- ios
- 为GridView添加HeaderView
- 微软提供的android模拟器
- EularProject 39:给周长判断构成直角三角形个数
- scrollview嵌套listview效果
- Cocos2dx之精灵批处理
- UART(接收部分)
- FAQ13715][Gallery] 如何修改gallery的背景色