任务:

  • 63 股票最大利润 经典动规,其实是一个系列的。

  • 47 礼物的最大价值。。基本操作

  • 48 最长不含重复字符的子字符串

  • 42 连续子数组最大和

63. 股票的最大利润

image.png

1. 思路

  • 暴力
    • 时间复杂度太高
  • 动态规划

image.png

2. 动态规划

  1. class Solution:
  2. def maxProfit(self, prices: List[int]) -> int:
  3. //初始化成本和利润
  4. //成本为正无穷
  5. //利润为0
  6. cost, profit = float("+inf"), 0
  7. //遍历
  8. for price in prices:
  9. // 成本要选择当前最小的
  10. cost = min(cost, price)
  11. // 利润选择现在的状态-成本和上一次的利润比较得到最大的
  12. profit = max(profit, price - cost)
  13. //返回利润
  14. return profit