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

代码随想录-训练营-day35

309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode)

这个题比起我们的买卖股票二来说多了一个冷冻期的说法,也就是我们卖出股票的第二天无法买入股票。

这样对我们而言,dp数组的含义,或者说dp数组中的状态显然就不能是简单的持有或者未持有股票了,事实上,我们不仅得多加一个冷冻期的状态,我们还得多加一个今天卖出股票的状态,因为我们的冷冻期必须是卖出股票的后一天。

综上所述,我们需要四个状态:0表示持有股票,1表示保持未持有股票(也就是已经度过冷冻期),2表示今天卖出股票,3表示冷冻期。

代码如下:

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n=prices.size();
        if(!n)return 0;
        vector<vector<int>> dp(n+1,vector<int>(4,0));
        dp[0][0]=-prices[0];
        for(int i=1;i<n;++i){
            dp[i][0]=max(dp[i-1][0],max(dp[i-1][1]-prices[i],dp[i-1][3]-prices[i]));
            dp[i][1]=max(dp[i-1][1],dp[i-1][3]);
            dp[i][2]=dp[i-1][0]+prices[i];
            dp[i][3]=dp[i-1][2];
        }
        return max(dp[n-1][1],max(dp[n-1][2],dp[n-1][3]));
    }
};

714. 买卖股票的最佳时机含手续费 - 力扣(LeetCode)

这个题的思路其实就是在我们的买卖股票的基础上添加一个基本的手续费,除此之外并没有不同。

代码如下:

class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        int n=prices.size();
        if(n==0)return 0;
        vector<vector<int>> dp(n+1,vector<int>(2,0));
        dp[0][0]=-prices[0];
        dp[0][1]=0;
        for(int i=1;i<n;++i){
            dp[i][0]=max(dp[i-1][0],dp[i-1][1]-prices[i]);
            dp[i][1]=max(dp[i-1][1],dp[i-1][0]+prices[i]-fee);
        }
        return dp[n-1][1];
    }
};

总结:

股票的问题也算是告一段落,其实不难看出,股票问题的主要变化点就在于dp数组的含义以及我们的递推公式,更准确地说是我们dp数组表示的状态差异。

相关文章:

  • 基于ffmpeg+openGL ES实现的视频编辑工具-添加转场(九)
  • C语言进阶习题【3】(7预处理)——写一个宏计算结构体变量相对于首地址的偏移
  • 先进制造aps专题三十 用免费生产排程软件isuperaps进行长期生产计划制定
  • 计算机图形学:实验环境配置
  • 基于Matlab实现串口实时显示波形GUI界面(源码)
  • Linux 驱动入门(6)—— IRDA(红外遥控模块)驱动
  • 代码随想录算法训练营day40(补0208)
  • “死”循环(查漏补缺)
  • 055 SpringCache
  • cs106x-lecture14(Autumn 2017)-SPL实现
  • 【Java进阶学习 第五篇】JDK8、9中的接口新特性
  • ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用
  • 第五章:工程化实践 - 第三节 - Tailwind CSS 大型项目最佳实践
  • kafka+spring cloud stream 发送接收消息
  • 华为OD机试真题-相对开音节-OD统一考试(E卷)
  • Meterpreter之getsystem命令提权原理详解
  • Zotero 快速参考文献导出(特定期刊引用)
  • 区块链相关方法-波士顿矩阵 (BCG Matrix)
  • Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现
  • 在LangFlow中集成OpenAI Compatible API类型的大语言模型
  • 阳光保险拟设立私募证券投资基金,总规模200亿元
  • 浙江省委金融办原副主任潘广恩被“双开”
  • 外交部部长助理兼礼宾司司长洪磊接受美国新任驻华大使递交国书副本
  • 清雪车司机未拉手刹下车导致溜车被撞亡,事故调查报告发布
  • 马上评|清理“滥竽充数者”,为医者正名
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会