leetcode 123. 买卖股票的最佳时机 III

news2024/9/25 5:21:13

2023.8.21

        本题限制了买卖次数:最多买卖两次。  与之前的股票问题相比,dp数组的第二个维度需要设置四个状态:

  1. 第一次持有股票
  2. 第一次不持有股票
  3. 第二次持有股票
  4. 第二次不持有股票

        ps:持有股票不等于购买股票!! 持有股票只是一种状态,可能是之前就买了股票,也可能是刚买入股票,故有两种情况,即:dp[i][0] = max(dp[i-1][0],-prices[i]);    同理,不持有股票也有两种情况,可能是之前就没有,也可能是刚卖出去。即:dp[i][1] = max(dp[i-1][1],prices[i]+dp[i-1][0]);  第二次买入和卖出也是同理。 代码如下:

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

        附上草稿图以供参考:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Git版本控制工具使用---讲解一】

Git版本控制工具使用 安装设置用户名签名和邮箱Git常用的命令 初始化本地库查看本地状态Git 命令添加暂存区提交本地库查看版本信息修改文件版本穿梭 安装 首先根据自身电脑的配置选择性的安装是32位的还是64位的Git版本控制工具 我这边安装的是64位的 以下是我安装的时候的过…

jmeter HTTP信息头管理器

首先&#xff0c;打开JMeter并创建一个新的测试计划。右键单击测试计划&#xff0c;选择"添加" > “线程组”&#xff0c;然后在线程组上右键单击&#xff0c;选择"添加" > “Sampler” > “HTTP请求”。 在HTTP请求中填写服务器的URL和其他必要…

深入浅出带你玩转栈与队列——【数据结构】

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 目录 1.栈 1.1栈的概念及结构 1.2栈的结构特征图 ​编辑 1.3栈的实现 1.3.1栈的初始化 1.3.2进栈 1.3.3出栈 1.3.4销毁内存 1.3.5判断栈是否为空 1.3.5栈底元素的读取 1.3.6栈中大小 1.4栈实现所有接口 2…

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现SO-CNN-BiL…

增强数字风险防护管理,天际友盟牵头正式发布GDN·全球数字风险阻断网络

随着数字化进程的加快&#xff0c;企业对于数字风险防护管理的需求与日俱增&#xff0c;其数字足迹、数字资产&#xff0c;甚至高管的个人形象都可能成为不法分子的攻击目标。保护关键数字资产与数据免受外部威胁&#xff0c;提升在线业务运营稳健性的价值毋庸置疑。 8月18日&a…

QQ音乐刷时长和音响力工具-无需密码

QQ音乐刷等级是一款安卓端的QQ音乐刷时长和音响力工具&#xff0c;使用时无需密码登录&#xff0c;直接输入qq号码即可&#xff0c;支持微信账号&#xff0c;每提交一次可以刷99分钟的听歌时长&#xff0c;实时到账&#xff0c;刷的听歌时长可以增加听歌排行榜跟音响力(就是QQ音…

辅助笔记-安装Ubantu20.04.1虚拟机

安装Ubantu20.04.1虚拟机 文章目录 安装Ubantu20.04.1虚拟机步骤一&#xff1a;检查BIOS虚拟化支持步骤二&#xff1a;VMware17安装虚拟机步骤1&#xff1a;新建虚拟机步骤2&#xff1a;验证虚拟机能否上网 步骤三&#xff1a;设置Ubantu语言为中文步骤四&#xff1a;软件仓库镜…

江西景德镇陶瓷三维扫描工艺品瓷器数字化3D打印-CASAIM中科广电

江西景德镇陶瓷是中国著名的传统陶瓷产地&#xff0c;其瓷器作为文化遗产具有重要的历史和艺术价值。对于陶瓷工艺品瓷器的三维扫描和数字化&#xff0c;利用三维激光扫描和3D打印相结合的方式助力文物数字化及复原领域是目前主流的发展趋势。 1. 三维激光扫描操作&#xff1a;…

编织梦想:SpringBoot AOP 教程与自定义日志切面完整实战

什么是 AOP AOP 是指通过预编译方式和运行期动态代理的方式&#xff0c;在不修改源代码的情况下对程序进行功能增强的一种技术。AOP 不是面向对象编程&#xff08;OOP&#xff09;的替代品&#xff0c;而是 OOP 的补充和扩展。它是一个新的维度&#xff0c;用来表达横切问题&a…

一文看懂群晖 NAS 安装 Mysql 远程访问连接

文章目录 1. 安装Mysql2. 安装phpMyAdmin3. 修改User 表4. 本地测试连接5. 安装cpolar6. 配置公网访问地址7. 固定连接公网地址 群晖安装MySQL具有高效、安全、可靠、灵活等优势&#xff0c;可以为用户提供一个优秀的数据管理和分析环境。同时具有良好的硬件性能和稳定性&#…

spring boot 3使用 elasticsearch 提供搜索建议

业务场景 用户输入内容&#xff0c;快速返回建议&#xff0c;示例效果如下 技术选型 spring boot 3elasticsearch server 7.17.4spring data elasticsearch 5.0.1elasticsearch-java-api 8.5.3 pom.xml <dependency><groupId>org.springframework.boot</gr…

如何快速搭建一个预约系统?

如何快速搭建一个预约系统 ? 线上预约系统的出现&#xff0c;为解决线下排队拥堵问题提供了便利和解决方案。通过线上预约&#xff0c;人们可以提前预约时间段&#xff0c;避免了到场后需要长时间等待的情况。以下是线上预约解决线下排队拥堵问题的几个场景&#xff1a; 餐厅…

深入完整的带你了解java对象的比较

目录 元素的比较 1.基本类型的比较 2.对象比较的问题 1.运行结果 2.疑问 3.原因 对象的比较 1.覆写基类的equals 2.基于Comparble接口类的比较 3.基于比较器比较 4.三种方式对比 元素的比较 1.基本类型的比较 在Java 中&#xff0c;基本类型的对象可以直接比较大…

52所韩国大学联合退出QS世界大学排名

因今年QS的全新评估指标&#xff0c;令韩国大学在世界大学的排名中大幅下降&#xff0c;因此韩国52所大学联合发表声明&#xff0c;将不再参加QS世界大学排名。下面知识人网小编做详细介绍。 今年6月28日&#xff0c;QS教育集团正式发布了2024年世界大学排名&#xff0c;见“排…

609. 在系统中查找重复文件

609. 在系统中查找重复文件 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 609. 在系统中查找重复文件 https://leetcode.cn/problems/find-duplicate-file-in-system/description/ 完成情况&#xff1a; 解题思…

网络编程(三次握手、四次挥手)

一、Wireshark 窗口介绍 二、 wireshark与对应的OSI七层模型 服务器和客户端的代码不能都运行在ubuntu&#xff0c;因为wireshark抓的是流经真实网卡的数据包。 若将服务器客户端都运行在ubuntu&#xff0c;数据直接经过虚拟网卡通信&#xff0c;而不会经过真实网卡。 三、以太…

QT样式表(一)

目录 QSS样式表设置 1、概念 1、通过UI设计器的可视操作修改 2、通过代码修改 3、从样式文件加载 2、样式表语法 选择器的类型 3、设置背景图片 1、添加资源文件 2、使用label控件 显示头像&#xff0c;在样式表文件中进行设置 3、在项目中添加图片资源 QSS样式表设…

动态规划入门之二维数组的动态规划(过河卒)

P1002 [NOIP2002 普及组] 过河卒 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 过河卒&#xff0c;首先科普一下象棋里面的马的跳跃一步的规则吧&#xff08;这题真够坑人的&#xff0c;连个规则都不给出&#xff0c;害得我第一次交就全wa&#xff09;。一张图解释 大家看所…

Nvidia Jetson 编解码开发(4)H265解码图像异常问题调试

1. 前言 基于此贴继续验证H265图像 Nvidia Jetson 编解码开发(3)解决H265解码报错“PPS id out of range”_free-xx的博客-CSDN博客 ffmpeg解码后图像颜色异常 2. 梳理YUV格式顺序 相机输出图像格式: YUV422 8bit, UYVY 由于编码模块输入必须是 YUV420, 不能是YUV…

SpringCloud Ribbon中的7种负载均衡策略

SpringCloud Ribbon中的7种负载均衡策略 Ribbon 介绍负载均衡设置7种负载均衡策略1.轮询策略2.权重策略3.随机策略4.最小连接数策略5.重试策略6.可用性敏感策略7.区域敏感策略 总结 负载均衡通器常有两种实现手段&#xff0c;一种是服务端负载均衡器&#xff0c;另一种是客户端…