当前位置:   article > 正文

代码随想录day50|123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV

代码随想录day50|123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV

123. 买卖股票的最佳时机 III

  1. class Solution:
  2. def maxProfit(self, prices: List[int]) -> int:
  3. dp=[[0]*5 for _ in range(len(prices))]
  4. dp[0][0]=0
  5. dp[0][1]=-prices[0]
  6. dp[0][2]=0
  7. dp[0][3]=-prices[0]
  8. dp[0][4]=0
  9. for i in range(1,len(prices)):
  10. dp[i][0] = dp[i-1][0]
  11. dp[i][1] = max(dp[i-1][1],dp[i-1][0]-prices[i])
  12. dp[i][2]=max(dp[i-1][2],dp[i-1][1]+prices[i])
  13. dp[i][3]=max(dp[i-1][3],dp[i-1][2]-prices[i])
  14. dp[i][4]=max(dp[i-1][4],dp[i-1][3]+prices[i])
  15. return dp[len(prices)-1][4]

188. 买卖股票的最佳时机 IV

  1. class Solution:
  2. def maxProfit(self, k: int, prices: List[int]) -> int:
  3. dp = [[0]* (2*k+1) for _ in range(len(prices))]
  4. dp[0][0] = 0
  5. j=1
  6. while j < 2*k:
  7. dp[0][j] = -prices[0]
  8. j+=2
  9. for i in range(1,len(prices)):
  10. j=0
  11. while j < 2*k-1:
  12. dp[i][j+1]=max(dp[i-1][j+1],dp[i-1][j]-prices[i])
  13. dp[i][j+2]=max(dp[i-1][j+2],dp[i-1][j+1]+prices[i])
  14. j+=2
  15. return dp[len(prices)-1][2*k]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/286731
推荐阅读
相关标签
  

闽ICP备14008679号