leetcode 股票买卖(动态规划)

这位大佬四种题型总结的很好:link

一共只有三种状态:买、卖、冷冻

buy[i]buy[i]buy[i] 表示第i天之前最后一次行为是buy时,最大的收益

sell[i]sell[i]sell[i]表示第i天之前最后一次行为是sell时,最大的收益

rest[i]rest[i]rest[i]表示第i天之前最后一次行为是冷冻rest时,最大的收益

buy[i]=max(buy[i−1],rest[i−1]−prices[i])buy[i]=max(buy[i−1],rest[i−1]−prices[i])buy[i]=max(buy[i−1],rest[i−1]−prices[i]),max(第i天冷冻, 第i天是卖出)

sell[i]=max(sell[i−1],buy[i−1]+prices[i])sell[i]=max(sell[i−1],buy[i−1]+prices[i])sell[i]=max(sell[i−1],buy[i−1]+prices[i]),max(第i天冷冻,第i天是买入)

rest[i]=max(rest[i−1],buy[i−1],sell[i−1])rest[i]=max(rest[i−1],buy[i−1],sell[i−1])rest[i]=max(rest[i−1],buy[i−1],sell[i−1])

class Solution {public:int maxProfit(vector<int>& prices) {// 有冷冻期 不限制买卖次数 但是卖完股票后有一天的冷冻期才能再接着买int n = prices.size();if(n<=1) return 0;vector<int> buy(n, INT_MIN), sell(n, INT_MIN), rest(n, INT_MIN);buy[0] = -prices[0];sell[0] = 0;rest[0] = 0;for(int i=1; i<n; i++){buy[i] = max(buy[i-1], rest[i-1]-prices[i]);sell[i] = max(sell[i-1], buy[i-1]+prices[i]);rest[i] = max(rest[i-1], max(buy[i-1], sell[i-1]));}return max(buy[n-1], max(sell[n-1], rest[n-1]));}
};

PS: 我现在还不能想出来,动态规划的转移方程很重要啊,我还不熟练,要好好练

【leetcode】【动态规划】股票买卖相关推荐

  1. LeetCode题解 - 动态规划-股票买卖

    LeetCode题解 - 动态规划-股票买卖 文章目录 LeetCode题解 - 动态规划-股票买卖 **一.穷举框架** **二.状态转移框架** **三.秒杀题目** 121. 买卖股票的最佳时机 ...

  2. [LeetCode]动态规划求解博弈问题

    博弈论是有趣又有用的知识,可以用来预测在特定的规则下,人们会做出怎样的行为,又会导致怎样的结果.利用博弈论来指导人们的行事法则甚至商业操作,比如著名的囚徒困境就被很好的利用在了商业竞争上.同样,Lee ...

  3. LeetCode 动态规划《简单》部分 Python实现

    #2018-06-07 June Thursday the 23 week, the 158 day SZ #LeetCode 动态规划简单部分 Python实现 '''爬楼梯 假设你正在爬楼梯.需要 ...

  4. Leetcode动态规划部分典型题目分类及总结

    参考内容 https://leetcode-cn.com/problems/longest-palindromic-substring/solution/zhong-xin-kuo-san-dong- ...

  5. LeetCode动态规划股票系列整理

    写在前面 股票感觉是LeetCode动态规划中系列最多的一类,交易次数不同,有冷冻期,含手续费,让买卖的最佳时机千奇百怪,但是只要掌握dp的方法,解决起来还是有套路可循的.依据dp的常规思想,股票问题 ...

  6. LeetCode动态规划基础题-总结(超级长文)

    前言 五一留校,要不学习一下,整理了一下之前学习的动态的笔记~- -_--- 这部分的题目 确实很有质量的呀,认真看完,会有收获的啦. 感谢代码随想录.LeetCode 真是非常好的练习平台和习题讲解 ...

  7. LeetCode 动态规划(Dynamic programming)系列题目--C++,Python解法

    LeetCode上有许多态规划(Dynamic programming)的题目,我在这里整合一下 本文章不再更新,请看LeetCode 所有题目总结 LeetCode 所有题目总结:LeetCode ...

  8. 化工热力学补考成功,几天没有头脑了,赶紧赏自己几题Leetcode动态规划算法最长系列

    @Author:Runsen @Date:2020/10/9 "恭喜你昨天,化工热力学补考成功!" "区区化工热力学还想让我重修,只不过浪费了我九月一半的精力和十月的九成 ...

  9. 【leetcode】股票买卖系列总结

    股票买卖系列总结 股票买卖系列的题目在面试中还是比较经典的,这里对这一系列做一些简单的总结. 1. 只允许买卖一次 假设股票价格序列为(3, 5, 7, 3, 8, 1) 动态规划.整个过程中的行为选 ...

  10. leetcode动态规划(python与c++)

    1 . 斐波那契数 class Solution:def fib(self, n: int) -> int:# if n==0:# return 0# elif n==1:# return 1# ...

最新文章

  1. js添加网页水印和three.js场景中加水印
  2. Scala进阶之路-正则表达式案例
  3. javascript传值和页面跳转传值(ASP.NET页面传参的三种方法)
  4. 常用邮件客户端软件设置
  5. USB 之四 USB 发展(更名)史 / USB 规范变化
  6. html5爆款游戏,精华盘点:2018年的十款“爆款”独立游戏,你都玩过吗?
  7. php大并发 大流量 大存储解决方案
  8. python之绝对导入和相对导入
  9. 2008wsus创建和管理计算机组,Windows Server 2012 R2 WSUS-6:配置计算机组和客户端目标...
  10. SQL Server脏读方式数据提取---NOLOCK和READPAST
  11. php 投票 排序,关于phpcms v9投票模块选项排序问题修改_PHP教程
  12. 计算机环形拓扑结构教案,面试真题高中信息技术《网络拓扑结构》教学设计...
  13. Oracle DML NOLOGGING
  14. CocurrentHashMap和Hashtable的区别
  15. linux系统交换分区的文件格式是,【简答题】Red Hat Linux中,交换分区的文件系统类型是什么,光盘文件的文件系统类型是什么?...
  16. 2021考研数学一123分经验分享
  17. 骆驼IPTV后端源码+前端APP
  18. python 画图工具——matplotlib命令式函数
  19. shell编程之awk(数据筛选与处理)
  20. 深度测评 | 五大主流多端开发框架全面对比

热门文章

  1. 群签名和环签名的区别_苹果企业签名和苹果超级签名的区别
  2. 高阶函数-sort()与sorted() (三分钟读懂)
  3. java rsa padding_rsa加密--选择padding模式需要注意的问题。。。
  4. sql 可以多个分组吗_你知道吗?罗非鱼的品种多达100多个,不单是食用鱼也可以是观赏鱼...
  5. nginx 集群部署_Nginx Ingress on TKE 部署最佳实践
  6. 自注意力机制_自注意力机制在计算机视觉中的应用【附PPT与视频资料】
  7. 嵌入不同源的页面_嵌入式技术课程教与学(教学大纲和试卷)
  8. Python爬虫的智能化解析——Diffbot
  9. 动态规划系列问题—从小白到大佬的入门、进阶之旅!!!
  10. Numpy中出现“ValueError: zero-size array to reduction operation maximum which has no identity”错误的调试笔记