更正了188股票问题一维数组空间优化的java代码

This commit is contained in:
LiHua
2021-11-24 16:28:54 +08:00
parent 6bc2480319
commit 7575cfd431

View File

@ -165,7 +165,7 @@ public:
## 其他语言版本 ## 其他语言版本
Java ### Java
```java ```java
// 版本一: 三维 dp数组 // 版本一: 三维 dp数组
@ -228,9 +228,9 @@ class Solution {
if(k == 0){ if(k == 0){
return 0; return 0;
} }
// 其实就是123题的扩展123题只用记录2的状态 // 其实就是123题的扩展123题只用记录2次交易的状态
// 这里记录k的状态就行了 // 这里记录k次交易的状态就行了
// 每都有买入,卖出两个状态,所以要乘 2 // 每次交易都有买入,卖出两个状态,所以要乘 2
int[] dp = new int[2 * k]; int[] dp = new int[2 * k];
// 按123题解题格式那样做一个初始化 // 按123题解题格式那样做一个初始化
for(int i = 0; i < dp.length / 2; i++){ for(int i = 0; i < dp.length / 2; i++){
@ -246,15 +246,15 @@ class Solution {
dp[j + 1] = Math.max(dp[j + 1], dp[j] + prices[i - 1]); dp[j + 1] = Math.max(dp[j + 1], dp[j] + prices[i - 1]);
} }
} }
// 返回最后一卖出状态的结果就行了 // 返回最后一次交易卖出状态的结果就行了
return dp[dp.length - 1]; return dp[dp.length - 1];
} }
} }
``` ```
### Python
Python
版本一 版本一
```python ```python
class Solution: class Solution:
def maxProfit(self, k: int, prices: List[int]) -> int: def maxProfit(self, k: int, prices: List[int]) -> int:
@ -285,8 +285,9 @@ class Solution:
dp[j] = max(dp[j],dp[j-1]+prices[i]) dp[j] = max(dp[j],dp[j-1]+prices[i])
return dp[2*k] return dp[2*k]
``` ```
Go ### Go
版本一: 版本一:
```go ```go
// 买卖股票的最佳时机IV 动态规划 // 买卖股票的最佳时机IV 动态规划
// 时间复杂度O(kn) 空间复杂度O(kn) // 时间复杂度O(kn) 空间复杂度O(kn)
@ -356,10 +357,7 @@ func max(a,b int)int{
} }
``` ```
### Javascript
Javascript
```javascript ```javascript
// 方法一:动态规划 // 方法一:动态规划