mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-13 14:10:38 +08:00
更新 0063.不同路径II增加空间优化版本c++代码
0063.不同路径II,L159-190 增加空间优化版本c++代码
This commit is contained in:
@ -155,6 +155,39 @@ public:
|
|||||||
* 时间复杂度:$O(n × m)$,n、m 分别为obstacleGrid 长度和宽度
|
* 时间复杂度:$O(n × m)$,n、m 分别为obstacleGrid 长度和宽度
|
||||||
* 空间复杂度:$O(n × m)$
|
* 空间复杂度:$O(n × m)$
|
||||||
|
|
||||||
|
|
||||||
|
同样我们给出空间优化版本:
|
||||||
|
```CPP
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
|
||||||
|
if (obstacleGrid[0][0] == 1)
|
||||||
|
return 0;
|
||||||
|
vector<int> dp(obstacleGrid[0].size());
|
||||||
|
for (int j = 0; j < dp.size(); ++j)
|
||||||
|
if (obstacleGrid[0][j] == 1)
|
||||||
|
dp[j] = 0;
|
||||||
|
else if (j == 0)
|
||||||
|
dp[j] = 1;
|
||||||
|
else
|
||||||
|
dp[j] = dp[j-1];
|
||||||
|
|
||||||
|
for (int i = 1; i < obstacleGrid.size(); ++i)
|
||||||
|
for (int j = 0; j < dp.size(); ++j){
|
||||||
|
if (obstacleGrid[i][j] == 1)
|
||||||
|
dp[j] = 0;
|
||||||
|
else if (j != 0)
|
||||||
|
dp[j] = dp[j] + dp[j-1];
|
||||||
|
}
|
||||||
|
return dp.back();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
* 时间复杂度:$O(n × m)$,n、m 分别为obstacleGrid 长度和宽度
|
||||||
|
* 空间复杂度:$O(m)$
|
||||||
|
|
||||||
|
|
||||||
## 总结
|
## 总结
|
||||||
|
|
||||||
本题是[62.不同路径](https://programmercarl.com/0062.不同路径.html)的障碍版,整体思路大体一致。
|
本题是[62.不同路径](https://programmercarl.com/0062.不同路径.html)的障碍版,整体思路大体一致。
|
||||||
|
Reference in New Issue
Block a user