Skip to content

Commit

Permalink
Merge pull request youngyangyang04#2788 from markwang1992/123-maxProfit
Browse files Browse the repository at this point in the history
123.买卖股票的最佳时机III增加Go版本二和版本三
  • Loading branch information
youngyangyang04 authored Nov 11, 2024
2 parents c8ecb49 + c6b12f2 commit 15c26d4
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions problems/0123.买卖股票的最佳时机III.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ class Solution:
### Go:

```go
// 版本一
func maxProfit(prices []int) int {
dp := make([][]int, len(prices))
for i := 0; i < len(prices); i++ {
Expand Down Expand Up @@ -344,6 +345,58 @@ func max(a, b int) int {
}
```

```go
// 版本二
func maxProfit(prices []int) int {
if len(prices) == 0 {
return 0
}
dp := make([]int, 5)
dp[1] = -prices[0]
dp[3] = -prices[0]
for i := 1; i < len(prices); i++ {
dp[1] = max(dp[1], dp[0] - prices[i])
dp[2] = max(dp[2], dp[1] + prices[i])
dp[3] = max(dp[3], dp[2] - prices[i])
dp[4] = max(dp[4], dp[3] + prices[i])
}
return dp[4]
}

func max(x, y int) int {
if x > y {
return x
}
return y
}
```

```go
// 版本三
func maxProfit(prices []int) int {
if len(prices) == 0 {
return 0
}
dp := make([][5]int, len(prices))
dp[0][1] = -prices[0]
dp[0][3] = -prices[0]
for i := 1; i < len(prices); i++ {
dp[i][1] = max(dp[i-1][1], 0 - prices[i])
dp[i][2] = max(dp[i-1][2], dp[i-1][1] + prices[i])
dp[i][3] = max(dp[i-1][3], dp[i-1][2] - prices[i])
dp[i][4] = max(dp[i-1][4], dp[i-1][3] + prices[i])
}
return dp[len(prices)-1][4]
}

func max(x, y int) int {
if x > y {
return x
}
return y
}
```

### JavaScript:

> 版本一:
Expand Down

0 comments on commit 15c26d4

Please sign in to comment.