funcmax(nums...int)int{res:=nums[0]for_,val:=rangenums{ifval>res{res=val}}returnres}funcmaxProfit(prices[]int)int{n:=len(prices)dp:=make([][3]int,n)// dp[i][0]:第 i 天结束后持有股票时获得的最大利润
dp[0][0]=-prices[0]// dp[i][1]:第 i 天结束后未持有股票且未处于冻结期时获得的最大利润
dp[0][1]=0// dp[i][2]:第 i 天结束后未持有股票且处于冻结期时获得的最大利润
dp[0][2]=0fori:=1;i<n;i++{dp[i][0]=max(dp[i-1][0],dp[i-1][1]-prices[i])dp[i][1]=max(dp[i-1][1],dp[i-1][2])dp[i][2]=dp[i-1][0]+prices[i]}returnmax(dp[n-1][1],dp[n-1][2])}