Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c6b12f2

Browse files
123.买卖股票的最佳时机III增加Go版本二和版本三
1 parent 42d84f8 commit c6b12f2

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

‎problems/0123.买卖股票的最佳时机III.md‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ class Solution:
317317
### Go:
318318

319319
```go
320+
// 版本一
320321
func maxProfit(prices []int) int {
321322
dp := make([][]int, len(prices))
322323
for i := 0; i < len(prices); i++ {
@@ -344,6 +345,58 @@ func max(a, b int) int {
344345
}
345346
```
346347

348+
```go
349+
// 版本二
350+
func maxProfit(prices []int) int {
351+
if len(prices) == 0 {
352+
return 0
353+
}
354+
dp := make([]int, 5)
355+
dp[1] = -prices[0]
356+
dp[3] = -prices[0]
357+
for i := 1; i < len(prices); i++ {
358+
dp[1] = max(dp[1], dp[0] - prices[i])
359+
dp[2] = max(dp[2], dp[1] + prices[i])
360+
dp[3] = max(dp[3], dp[2] - prices[i])
361+
dp[4] = max(dp[4], dp[3] + prices[i])
362+
}
363+
return dp[4]
364+
}
365+
366+
func max(x, y int) int {
367+
if x > y {
368+
return x
369+
}
370+
return y
371+
}
372+
```
373+
374+
```go
375+
// 版本三
376+
func maxProfit(prices []int) int {
377+
if len(prices) == 0 {
378+
return 0
379+
}
380+
dp := make([][5]int, len(prices))
381+
dp[0][1] = -prices[0]
382+
dp[0][3] = -prices[0]
383+
for i := 1; i < len(prices); i++ {
384+
dp[i][1] = max(dp[i-1][1], 0 - prices[i])
385+
dp[i][2] = max(dp[i-1][2], dp[i-1][1] + prices[i])
386+
dp[i][3] = max(dp[i-1][3], dp[i-1][2] - prices[i])
387+
dp[i][4] = max(dp[i-1][4], dp[i-1][3] + prices[i])
388+
}
389+
return dp[len(prices)-1][4]
390+
}
391+
392+
func max(x, y int) int {
393+
if x > y {
394+
return x
395+
}
396+
return y
397+
}
398+
```
399+
347400
### JavaScript:
348401

349402
> 版本一:

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /