当前位置: 首页 > news >正文

黑色大气网站新型产品设计

黑色大气网站,新型产品设计,物联网app开发平台,企业策划309. 买卖股票的最佳时机含冷冻期 买卖股票的最佳时机含冷冻期 分析: 使用动态规划解决 状态表示: 由于有「买入」「可交易」「冷冻期」三个状态#xff0c;因此我们可以选择用三个数组#xff0c;其中#xff1a; ▪ dp[i][0] 表示#xff1a;第 i 天结束后#xff0c… 309. 买卖股票的最佳时机含冷冻期 买卖股票的最佳时机含冷冻期 分析: 使用动态规划解决 状态表示: 由于有「买入」「可交易」「冷冻期」三个状态因此我们可以选择用三个数组其中 ▪ dp[i][0] 表示第 i 天结束后处于「买入」状态此时的最大利润。 ▪ dp[i][1] 表示第 i 天结束后处于「可交易」状态此时的最大利润。 ▪ dp[i][2] 表示第 i 天结束后处于「冷冻期」状态此时的最大利润。 状态转移方程: 1.处于买入状态的时候我们现在有股票此时不能买股票只能继续持有股票或者卖 出股票 2.处于卖出状态的时候 如果在冷冻期不能买入。 如果 不在冷冻期才能买入。 画出状态图 根据状态图可以得出 买入-买入什么都不干 买入-卖出买入股票 对应代码a[i]max(a[i-1],c[i-1]-prices[i-1]); 卖出-卖出什么都不干 卖出-冷冻期卖出股票 对应代码b[i]max(b[i-1],a[i-1]prices[i-1]); 冷冻期-冷冻期什么都不干 冷冻期-买入冷冻期结束 对应代码c[i]max(c[i-1],b[i-1]); 代码 class Solution { public:int maxProfit(vectorint prices) {int nprices.size();vectorinta(n1);//买入vectorintb(n1);//卖出vectorintc(n1);//冷冻a[0]-prices[0];for(int i1;in;i){a[i]max(a[i-1],c[i-1]-prices[i-1]);b[i]max(b[i-1],a[i-1]prices[i-1]);c[i]max(c[i-1],b[i-1]);}return max(b[n],c[n]);//从卖出和冷冻期中选出最大值因为买入状态肯定不是最大值因为还有股票没有卖出。} }; 714. 买卖股票的最佳时机含手续费 买卖股票的最佳时机含手续费 分析: 使用动态规划解决 与 买卖股票的最佳时机含冷冻期 问题相似我们直接画出状态图写状态方程。 状态图 买入-买入什么都不干 买入-卖出买入股票 对应代码a[i]max(a[i-1],c[i-1]-prices[i-1]); 卖出-卖出什么都不干 卖出-买入卖出股票并支付手续费 对应代码b[i]max(b[i-1],a[i-1]prices[i-1]-fee); 代码: class Solution { public:int maxProfit(vectorint prices, int fee) {int nprices.size();vectorinta(n1);//买入vectorintb(n1);//卖出a[0]-prices[0];for(int i1;in;i){a[i]max(a[i-1],b[i-1]-prices[i-1]);b[i]max(b[i-1],a[i-1]prices[i-1]-fee);}return b[n];} }; 123. 买卖股票的最佳时机 III 买卖股票的最佳时机 III 状态表示: 这里我们选择比较常用的方式以某个位置为结尾结合题目要求定义一个状态表示 由于有「买入」「可交易」两个状态因此我们可以选择用两个数组。但是这道题里面还有交易次 数的限制因此我们还需要再加上一维用来表示交易次数。其中 ▪ f[i][j] 表示第 i 天结束后完成了 j 次交易处于「买入」状态此时的最大利 润▪ g[i][j] 表示第 i 天结束后完成了 j 次交易处于「卖出」状态此时的最大利 润。 状态转移方程:   A.对于 f[i][j] 我们有两种情况到这个状态 1. 在 i - 1 天的时候交易了 j 次处于「买入」状态第 i 天啥也不干即可。此时最 大利润为 f[i - 1][j] 2. 在 i - 1 天的时候交易了 j 次处于「卖出」状态第 i 天的时候把股票买了。此 时的最大利润为 g[i - 1][j] - prices[i] 。 综上我们要的是「最大利润」因此是两者的最大值 f[i][j] max(f[i - 1][j], g[i - 1][j] - prices[i]) 。 B.对于 g[i][j] 我们也有两种情况可以到达这个状态 1.在 i - 1 天的时候交易了 j 次处于「卖出」状态第 i 天啥也不干即可。此时的 最大利润为 g[i - 1][j] 2.在 i - 1 天的时候交易了 j - 1 次处于「买入」状态第 i 天把股票卖了然 后就完成了 j 比交易。此时的最大利润为 f[i - 1][j - 1] prices[i] 。但 是这个状态不一定存在要先判断一下。 综上我们要的是最大利润因此状态转移方程为g[i][j] g[i - 1][j]; if(j 1) g[i][j] max(g[i][j], f[i - 1][j - 1] prices[i]); 代码: class Solution { public:int maxProfit(vectorint prices) {const int INF0x3f3f3f3f;int nprices.size();vectorvectorintf(n1,vectorint(3,-INF));//买vectorvectorintg(n1,vectorint(3,-INF));//卖f[0][0]-prices[0];g[0][0]0;for(int i1;in;i){for(int j0;j3;j){f[i][j]max(f[i-1][j],g[i-1][j]-prices[i]);g[i][j]g[i-1][j];if(j-10){g[i][j]max(g[i][j],f[i-1][j-1]prices[i]);}}}int ans0;for(int i0;i3;i){ansmax(ans,g[n-1][i]);}return ans;} };
http://www.yingshimen.cn/news/18204/

相关文章:

  • 办公室设计布局seo服务商找行者seo
  • 太原做网站公司常德网站设计
  • 手机怎么创建网站网上最好购物网站
  • 网站全网建设 莱芜班级优化大师简介
  • 建站网址导航hao123西安做网站 送百度首页
  • 湖南城乡建设网站太和县建设局网站
  • 天津市工程建设项目报建网站潜江资讯网信息发布
  • 潍坊网站建设优化推广装饰设计风格
  • 看乱码的网站wordpress正在执行例行维护
  • 怎样浏览被国内封禁的网站edo网站建设
  • 抚顺网站开发招聘个人导航网站源码
  • 北京网站建设课程培训公司注销后网站备案吗
  • 苏州公司网站建设报价网站上的淘客组件是怎样做的
  • 番禺网站设计公司制作网站专业公司哪家好
  • 网站工商备案查询南通网站排名
  • 凉山网站建设2015做导航网站有哪些功能吗
  • 怎么在凡科做自己网站最新商城系统
  • 正规的彩票网站怎么做手机版网站seo怎么做
  • 搭积木建网站软件如何开发网站自己做站长
  • 云南网站建设企业推荐龙岩优化公司
  • 长沙 服务seo搜索引擎
  • 网站建设心得体会及总结最干净在线网页代理
  • 哪个网站做轴承外贸的人比较多惠州网站建设培训
  • 音乐网站设计外国网上商店系统设计
  • 电子商务公司网站设计北京的建设网站公司
  • 彩妆网站模板小程序开发源码
  • 义乌做网站要多少钱佛山模板网站建设
  • 盐山做网站的如何制作网页的软件
  • 最简单的做网站工具wordpress 附件上传插件下载
  • asp.net网站制作教程网站建设优化服务多少钱