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

代码随想录训练营day42|188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

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

变成了最多可以买卖k只股票

class Solution {
public:int maxProfit(int k, vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(2*k+1,0));for(int i=1;i<2*k+1;i+=2){dp[0][i]=-prices[0];}//初始化,第k次买卖股票且持有股票的收益for(int i=1;i<prices.size();i++){//第i天第k笔持有的股票可以是第i-1天第k笔持有的股票得来的for(int j=1;j<2*k;j+=2){dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]-prices[i]);//第i天第j笔持有的股票的状态下最大利润,j表示还有股票dp[i][j+1]=max(dp[i-1][j+1],dp[i-1][j]+prices[i]);//第i天第j笔持有股票卖掉后(j+1是每股派的时候)}}int m=dp[prices.size()-1][2];for(int i=4;i<2*k+1;i+=2){m=max(m,dp[prices.size()-1][i]);}return m;}
};

309.最佳买卖股票时机含冷冻期

题目

本题总共对应 4种状态:

1.持有股票.2持股交易当天3.冷冻期。4.卖出股票后,买下一只股票前
在之前的题中,234被放到了一起,但本题有冷冻期所以要分开

class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int> (4,0));dp[0][0]=-prices[0];for(int i=1;i<prices.size();i++){dp[i][0]=max(max(dp[i-1][0],dp[i-1][2]-prices[i]),dp[i-1][3]-prices[i]);// 第i天持股,可以前一天是持股的,也可以前一天冷冻期,也可以前一天是冷冻期后但还没买入。dp[i][1]=prices[i]+dp[i-1][0];//卖出股票当天,前一天必须持股dp[i][2]=dp[i-1][1];//冷冻期,和前一天卖出去的一样dp[i][3]=max(dp[i-1][3],dp[i-1][2]);//冷冻期结束后的一天或i-1天已经是结束冷冻期了}return max(max(dp[prices.size()-1][1],dp[prices.size()-1][2]),dp[prices.size()-1][3]);}
};

在这里插入图片描述

714.买卖股票的最佳时机含手续费

 dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]-fee);dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i]);

只用考虑减去手续费即可。

http://www.lryc.cn/news/434611.html

相关文章:

  • 解决Pynput不能在Ubuntu22.04上正常使用问题
  • IPV4端口数据有哪些?
  • 【爱加密_云平台-注册/登录安全分析报告】
  • Open CASCADE学习|按圆离散旋转体
  • 无人矿车使用ZMQ消息代理进行跨机互联进行消息收发
  • 医疗机构关于DIP/DRG信息化建设
  • 100个候选人,没一个能讲明白什么是自动化框架?
  • 数据结构与算法1: 链表
  • 【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)
  • 这10种人不适合干项目经理,你在其中吗?
  • IT每日英语(三)
  • 【保姆级教程】如何创建一个vitepress项目?
  • 智能头盔语音识别声控芯片,AI离线语音识别ic方案,NRK3301
  • 【STM32】CAN总线基础入门
  • STM32F1+HAL库+FreeTOTS学习10——任务相关API函数使用
  • 华为 HCIP-Datacom H12-821 题库 (14)
  • java八股!2
  • 一分钟了解统一软件开发过程RUP的那点事
  • Goby 漏洞发布|(CVE-2024-45195)Apache OFBiz /viewdatafile 代码执行漏洞【已复现】
  • js的书写位置和css的书写位置的区别?为什么要这样写?
  • Python一些可能用的到的函数系列132 ORM-sqlalchemy连clickhouse
  • 华为 HCIP-Datacom H12-821 题库 (12)
  • pointpillar部署-TensorRT实现(三)
  • Java学习中,为什么会混淆类方法和实例方法,应该怎么办?
  • 【人工智能学习笔记】4_3 深度学习基础之循环神经网络
  • 解锁生活密码,AI答案之书解决复杂难题
  • Android Radio2.0——公告监听设置(四)
  • EMR Spark-SQL性能极致优化揭秘 Native Codegen Framework
  • 【VUE】实现当前页面刷新,刷新当前页面的两个方法(如何在一个页面写一个方法提供给全局其他地方调用)(如何重复调用同一个路由实现页面的重新加载)
  • 【科研小小白】灰度化处理、阈值、反色、二值化、边缘检测;平滑;梯度计算;双阈值检测;非极大值抑制