[国电电力股吧](600520)文一科技

2021-07-08:股票问题5。给定一个整数数组,其间第i个元素代表了第i天的股票价格。规划一个算法计算出最大赢利。在满意以下束缚条件下,你能够尽可能地完结更多的生意(屡次生意一支股票):你不能一起参加多笔生意(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票(即冷冻期为1天)。

福大大答案2021-07-08:

空间紧缩的动态规划。

时刻复杂度:O(N)。空间复杂度:O(1)。

代码用golang编写。代码如下:

packagemain\n\nimport"fmt"\n\nfuncmain(){\narr:=[]int{1,2,3,4,1,6,7}\nret:=maxProfit(arr)\nfmt.Println(ret)\n}\n\nfuncmaxProfit(prices[]int)int{\niflen(prices)<2{\nreturn0\n}\nbuy1:=getMax(-prices[0],-prices[1])\nsell1:=getMax(0,prices[1]-prices[0])\nsell2:=0\nfori:=2;i<len(prices);i++{\ntmp:=sell1\nsell1=getMax(sell1,buy1+prices[i])\nbuy1=getMax(buy1,sell2-prices[i])\nsell2=tmp\n}\nreturnsell1\n}\n\nfuncgetMax(aint,bint)int{\nifa>b{\nreturna\n}else{\nreturnb\n}\n}

履行成果如下:

***

[左神java代码](github/algorithmzuo/coding-for-great-offer/blob/main/src/class15/Code05_BestTimeToBuyAndSellStockWithCooldown.java)

发布于 2023-12-25 00:12:48
收藏
分享
海报
3
目录

    推荐阅读