第九章 动态规划part12(代码随想录)
309.最佳买卖股票时机含冷冻期
1. 确定dp数组(dp table)以及下标的含义
dp[i][j],第i天状态为j,所剩的最多现金为dp[i][j]。
2. 确定递推公式
拆分卖出股票状态是因为冷冻期前一天一定是具体卖出股票状态。
状态一 dp[i][0]:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作,一直持有)
dp[i-1][0]

dp[i-1][3] - prices[i](冷冻期后买入),dp[i-1][1] - prices[i](买入前一天保持卖出股票状态)

dp[i][0] = max(dp[i - 1][0], max(dp[i - 1][3], dp[i - 1][1]) - prices[i]); 不持有股票状态,这里就有两种卖出股票状态
状态二 dp[i][1]:保持卖出股票的状态(两天前就卖出了股票,度过一天冷冻期。或者是前一天就是卖出股票状态,一直没操作)
dp[i-1][1]

dp[i-1][3]

dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]);
状态三 dp[i][2]:今天具体卖出股票(前一天一定是持有股票状态才能卖)
dp[i-1][0] + prices[i]
dp[i][2] = dp[i - 1][0] + prices[i]; 状态四 dp[i][3]:今天为冷冻期状态,但冷冻期状态不可持续,只有一天!
dp[i-1][2] (前一天为具体卖出股票状态)
dp[i][3] = dp[i - 1][2]; 3. dp数组如何初始化
如果是持有股票状态(状态一)那么:dp[0][0] = -prices[0],一定是当天买入股票。
dp[0][1] = ?
由于状态本身为非法状态。我们看递推公式中需要把它初始化成多少,就把它初始化成多少。
(1)用到了dp[0][1]:
dp[i][0] = dp[i - 1][1] - prices[i]; (1)
Subsitutde i=1 into (1)
dp[1][0] = dp[0][1] - prices[1]; 第0天状态1初始化为0
dp[0][1] 初始化为0
让递推公式从第一天合理推导下去
同理:dp[0][2] = 0
dp[0][3] = 0 // 第0天就是冷冻期状态不合法
4. 确定遍历顺序
从前往后遍历
for (int i = 1; i < prices.size(); i++) { 持有股票的状态,此时手头现金一定不是最大的。最后一天的状态1、2、3都有可能是最大值。
最后结果:最后一天手头最大现金 max(dp[price.size()-1][1], dp[price.size()-1][2], dp[price.size()-1])[3])
5. 举例推导dp数组

714.买卖股票的最佳时机含手续费
相关文章:
第九章 动态规划part12(代码随想录)
309.最佳买卖股票时机含冷冻期 1. 确定dp数组(dp table)以及下标的含义 dp[i][j],第i天状态为j,所剩的最多现金为dp[i][j]。 2. 确定递推公式 拆分卖出股票状态是因为冷冻期前一天一定是具体卖出股票状态。 状态一 dp[i][0]&…...
ssm珠宝首饰交易平台源码和论文
ssm珠宝首饰交易平台源码和论文101 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势&a…...
交互设计都有哪些准则?
UI交互设计的本质不是完全基于用户的需求,而是交互设计师需要学习根据用户描述的产品形式来了解用户需要什么。 在交互设计过程中,遵循科学交互设计的本质是整个交互设计过程的重要组成部分,这与产品使用过程中给用户带来的体验密切相关。本…...
【MySQL】从哪几个角度分析数据库失败的原因?
总体评估MySQL服务器感谢 💖 总体评估 当发现数据库出现问题时,我们首先应该从全局的角度考虑架构中的所有组件。包括: 服务器(数据库和应用程序) 存储:存储故障可能导致关键信息丢失网络接口:…...
Spring Boot 的核心注解SpringBootApplication
SpringBootApplication 包括的注解 SpringBootConfiguration 组合了 Configuration 注解,实现配置文件的功能。 EnableAutoConfiguration 打开自动配置的功能,也可以关闭某个自动配置的选项, 例如:java 如关闭数据源自动配置功…...
自助式数据分析平台:JVS智能BI功能介绍(一)数据源
一、数据源配置 数据源概述 数据源是JVS-智能BI支持多种数据形态的基础,核心的目标是将不同的数据来源通过统一接入,实现将不同的数据实现统一的数据加工、数据应用。目前JVS-智能BI主要支持3种形态的数据:数据库、API、离线文件。 界面介…...
CSS魔术师Houdini,用浏览器引擎实现高级CSS效果
开门见山,直接上货 🔍 CSS Houdini是什么? “Houdini”一词引用自“Harry Houdini”,他是一位20世纪的著名魔术师,亦被称为史上最伟大的魔术师、逃脱术师及特级表演者。 我们都知道,浏览器在渲染网页显示样…...
DC/DC开关电源学习笔记(二)开关电源的分类
(二)开关电源的分类 1.DC/DC类开关电源2.AC/DC变换器3.电路结构分类4.功率开关管分类5.电路拓扑分类 根据变换方式,电源产品有下列四大类; (1):第一大类:AC/DC开关电源; …...
conda创建python虚拟环境
1.查看当前存在那些虚拟环境 conda env list conda info -e 2.conda安装虚拟环境 conda create -n my_env_name python3.6 2.1在anaconda下改变python版本 当前3.7 安装3.7 conda create -n py37 python3.7 conda activate py37 conda create -n py37 python3.7conda a…...
Python 操作 MongoDB 数据库介绍
MongoDB 是一款面向文档型的 NoSQL 数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以 K/V 形式存储,结构不固定,它的字段值可以包含其他文档、数组和文档数组等。其采用的 BSON(二进制 JSON &am…...
【ES6】Generator 函数
Generator 函数是 ES6 引入的一种新的函数类型,它既可以生成一个序列,又可以在某个条件下停止执行,并在需要时恢复执行。Generator 函数非常适合处理那些需要按需计算的场景,例如处理大数据、生成随机数等。 Generator 函数的基本…...
「操作系统」1. 基础
前言:操作系统基础八股文 文章目录 一 、操作系统基础1.1 什么是操作系统?1.2 什么是系统调用1.3 什么是中断 🚀 作者简介:作为某云服务提供商的后端开发人员,我将在这里与大家简要分享一些实用的开发小技巧。在我的职…...
Docker安装Oracl数据库!
安装Docker 查看是否安装docker: yum list installed | grep docker 安装docker: yum -y install docker 启动docker: systemctl start docker 查看docker启劝状态: systemctl status docker 查看docker版本: docker --version 设置docker开机自启动: systemctl en…...
leecode 数据库:1158. 市场分析 I
数据导入: SQL Schema: Create table If Not Exists Users (user_id int, join_date date, favorite_brand varchar(10)); Create table If Not Exists Orders (order_id int, order_date date, item_id int, buyer_id int, seller_id int); Create tab…...
简单shell脚本的编写
文章目录 简单使用shell脚本参数判断整数的比较运算符字符串的比较运算shell脚本流程控制shell脚本循环for循环批量添加用户批量ping IP地址检测同一局域网,多台主机存活情况检测同一局域网,多台主机存活情况多线程检测主机存活情况 while循环case选择语…...
汽车售后接待vr虚拟仿真实操演练作为岗位培训的重要工具和手段
汽车虚拟仿真教学软件是一种基于虚拟现实技术的教学辅助工具。它能够模拟真实的汽车环境和操作场景,让学生能够通过虚拟仿真来学习和实践汽车相关知识和技能。与传统的教学方式相比,汽车虚拟仿真教学软件具有更高的视觉沉浸感和互动性,能够更…...
登录校验-Filter-登录校验过滤器
目录 思路 登录校验Filter-流程 步骤 流程图 登录校验Filter-代码 过滤器类 工具类 测试登录 登录接口功能请求 其他接口功能请求 前后端联调 思路 前端访问登录接口,登陆成功后,服务端会生成一个JWT令牌,并返回给前端࿰…...
Vue3列表竖向滚动(包含使用swiper的翻页效果)
一、使用element-plus表格进行滚动: 可以满足的需求:表格一行一行竖向滚动,类似走马灯。 不能满足的需求:表格分页竖向滚动,有翻页的效果。 代码: <template><el-table:data"tableData"…...
OS 死锁处理
如果P先申请mutex 则mutex从1置零,假设申请到的empty 0则empty变成-1阻塞态 同理C中mutex从0变为-1,那么如果想离开阻塞态,那么就需要执行V(empty)但是如果执行V(empty)就需要P(mu…...
Phyphox实验避坑指南:测声速时管长、温度、管口校正那些事儿
Phyphox声速测量实验的进阶精度优化手册 在物理实验教学中,声速测量一直是验证波动理论的基础实践。但当智能手机传感器遇上共振管法,看似简单的实验背后藏着诸多魔鬼细节——管口切割的平整度会引入0.5%的误差,手掌温度能在3分钟内使铝管共振…...
深耕财税赋能+精准GEO推广 好账本兰宝玺双线发力助企破局
在数字经济飞速发展的当下,财税服务的专业性与营销推广的精准度,成为中小微企业稳健成长的两大核心支撑。深耕苏州、昆山财税领域八年的98后实干者兰宝玺,依托好账本财税平台的坚实后盾,不仅以精细化财税服务为创业者保驾护航&…...
MindCluster集群调度实践-通用超节点调度算法
作者:昇腾实战派 一、超节点的重要性 随着模型参数量的上升,训练任务运行所需的芯片数量也达到了万卡、十万卡级别。如何将如此庞大的芯片链接起来,并且做到通信带宽和成本的平衡,成为硬件层面的一大难题。 图1.资源扩展方式示…...
GO-Surf:基于神经特征网格的快速高保真三维表面重建技术解析
1. 项目概述:从点云到高保真表面的跨越在三维视觉与机器人领域,从一组稀疏的RGB-D图像序列中,快速、高质量地重建出物体的完整表面模型,一直是一个核心且富有挑战性的任务。传统的基于体素或点云的方法,要么在精度上难…...
节日场景下慈善钓鱼与宠物诈骗机理及闭环防御研究
摘要 节日期间公众捐赠意愿上升、宠物领养需求旺盛,为网络钓鱼与社交欺诈提供了高发土壤。波士顿警方发布的节日安全预警显示,假冒慈善机构钓鱼、虚假宠物领养与交易诈骗已成为典型高发案件,两类攻击均依托情感诱导、域名仿冒、社交工程与支付…...
ABAP 采购带组件收货BAPI
一、背景 有一项业务比较特殊,金靶的回收加工,既会有物料的消耗,也会收进上一批加工洗出来的物料,并且组件物料会带有批次,MIGO过账时需要填写批次,那么对应BAPI,也需要加入这一部分批次。如果…...
Keil MDK中EVR选项缺失的解决方案与原理
1. 问题现象解析:EVR选项缺失的典型表现 在Keil MDK开发环境中使用Event Recorder(事件记录器)时,开发者常会遇到一个令人困惑的现象:按照官方文档配置printf重定向到EVR时,STDOUT的下拉菜单中本该出现的&q…...
快速上手3DGS数字孪生开发:一份必做的技术动作盘点清单
一、行业核心技术科普:3DGS数字孪生开发的关键技术节点从零开始构建一个基于3D高斯泼溅(3DGS)的数字孪生应用,涉及多个关键技术节点。每个节点的执行质量,都直接影响最终应用的性能与用户体验。其域创新推出的LCC格式&…...
Teledyne PDS后处理软件保姆级教程:从新建项目到格网导出的完整流程
Teledyne PDS后处理软件从入门到精通:多波束数据处理全流程实战指南 第一次打开Teledyne PDS后处理软件时,满屏的专业术语和复杂菜单让不少水下测量工程师感到无从下手。作为处理T50P等多波束测深数据的核心工具,PDS软件的操作流程直接关系到…...
国内用户怎么注册.ai域名?2026最新AI域名注册规则+平台推荐
随着人工智能(AI)行业的持续爆发,越来越多企业在搭建官网时,开始优先选择 .ai域名。 你会发现一个明显变化: 👉 很多AI工具、AI平台,直接使用“.ai”作为网站后缀 这背后的原因,其…...
