动态规划之买卖股票全解析【通俗易懂】

news2024/12/30 2:35:56

文章目录

  • 前言
  • 一、无限制数
    • 1、无限次买入卖出且无手续费
    • 2、无限次买入卖出且无手续费,但是有冷冻期
    • 3、无限次买入卖出但是有手续费
    • 4、只能买卖一次
  • 二、有限制数


前言

买卖股票问题是动态规划中最经典的问题我把这一类问题分为两大类。一类是没有限制的,第二类是限制交易数的。

总的思路是记录好每天持有的还有每天不持有的,这两种状态即可。
他们的转移方程如下:
每一天的不持有状态是,可能是保持了前一天的不持有状态(不做操作而来的),或者由前一天的持有之后今天卖出去而来的。
每一天的持有状态是,可能保持前一天的持有状态而来。或者由今天的不持有且今天买入而来的。(由于dp[0[改变在先 所以是今天)

最后返回的都是最后一天不持有的状态。

一、无限制数

1、无限次买入卖出且无手续费

先来看看 无限次买入卖出 可以在同一天并且无手续费。
这个就是最基本的。
每一天的不持有状态是,可能是保持了前一天的不持有状态(不做操作而来的),或者由前一天的持有之后今天卖出去而来的。
每一天的持有状态是,可能保持前一天的持有状态而来。或者由今天的不持有且今天买入而来的。(由于dp[0[改变在先 所以是今天)

在这里插入图片描述

2、无限次买入卖出且无手续费,但是有冷冻期

有冷冻期( 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。) 只需要记录前一天的不持有状态就行了 因为前一天不持有的 才能保证是前前天卖出去的,如果说用今天不持有的话,那么就可能是昨天卖出去的。
在这里插入图片描述

3、无限次买入卖出但是有手续费

有手续费 只需要在每一天卖出去的减去手续费
在这里插入图片描述

4、只能买卖一次

只能买卖一次 持有状态 不能由之前不持有的利润累加,就是持有状态永远都是0 - 今天的价格。在这里插入图片描述

二、有限制数

先初始化 注意dp是k+1 遍历所有的天 每天遍历所有的交易次数情况。
记录好第一天进行了次交易的持有利润和不持有利润
同一天可以进行多次买入卖出所以第一天的交易数可以是1到k
第0次都为利润都为0
不持有的利润都未-prices[0]。
然后遍历每一天,与每一次交易。
在这里插入图片描述
剩余j次并且不持有 可能是之前剩余j次不持有的保持,也可能是剩余j次持有 在今天卖出
剩余j次并且持有 可能是之前剩余j次持有的保持,也可能是剩余j-1次不持有 在今天买入
第j笔交易 一定是在第j-1笔交易的基础上 进行的
买了才算一笔交易

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

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

相关文章

【java源码】医院绩效考核系统源码 支持主流的“成本法”、“工作量法”、“平衡计分卡法”的绩效方案

医院绩效考核系统源码 ,(有项目应用案例)可适应医院多种绩效核算方式。 医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件。系统和his系统进行对接,按照设定周期…

Node编写用户注册接口

目录 前言 创建服务器 编写注册接口API 创建路由对象,将路由对象导出去 将路由对象导出到服务器中 判断用户发起注册请求时是否输入账号或密码 验证表单数据 在数据库中创建表 在node中绑定mysql数据库 判断用户注册的账号密码是否已经被注册 密码加密 完…

Redis详细安装教程

一、Redis 的安装及启动停止 1-1 下载 redis的压缩包 wget https://download.redis.io/releases/redis-5.0.14.tar.gz1-2 开始解压 redis tar -zxvf redis-5.0.14.tar.gz1-3 执行 make 命令编译 make PREFIX/usr/redis install (如果不加prefix 默认安装到/usr/…

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters2. 解决参考 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters …

【API篇】六、Flink输出算子Sink

文章目录 1、输出到外部系统2、输出到文件3、输出到KafKa4、输出到MySQL(JDBC)5、自定义Sink输出 Flink做为数据处理引擎,要把最终处理好的数据写入外部存储,为外部系统或应用提供支持。与输入算子Source相对应的,输出…

docker部署rabbitmq的坑

背景 今天用docker部署rabbitmq,启动都一起正常,但是当访问15672端口时,不能加载出页面。 排查 1.防火墙是否开启 ufw status2.ip是否能ping通 ping 192.168.x.x3.检查docker日志 docker psdocker logs -f 容器id4.进入容器&#xff0c…

Visual Studio Code (VS Code)安装教程

Visual Studio Code(简称“VS Code”)。 1.下载安装包 VS Code的官网: Visual Studio Code - Code Editing. Redefined 首先提及一下,vscode是不需要破解操作的; 第一步,看好版本,由于我的系…

性能测试连载-负载场景模型构建

业务需求 假设公司领导现在给你分配了一个性能测试需求如下: 1:公司有1000人在上班时间段会登录平台进行打卡操作,可能会登录打卡多次 2:业务高峰时间段在8:00-8:30,半小时 3:需要保证90%用户的响应时间在…

GB28181学习(十二)——报警事件通知和分发

要求 发生报警事件时,源设备将报警信息发送给SIP服务器;报警事件通知和分发使用MESSAGE方法;源设备包括: SIP设备网关SIP客户端联网系统综合接处警系统以及卡口系统 目标设备包括: 具有接警功能的SIP客户端联网系统综…

【斗破年番】官方终于回应,萧潇删减不属实,两线索佐证,彩鳞咖位不会降

【侵权联系删除】【文/郑尔巴金】 斗破苍穹年番动画虽然火爆,但是问题也很多,动不动就上演一出魔改,引发粉丝们的疯狂吐槽。先是萧炎与美杜莎女王的陨落心炎失身戏份遭删减,如今当萧炎回蛇人族,又魔改了美杜莎女王怀孕…

06、Python 序列 与 列表 与 元组 的关系和创建 和 简单使用

目录 序列元组与列表关系总结 创建元组与列表方式一创建元组注意点 创建元组与列表方式二简单使用通过索引访问元素子序列序列加法序列乘法in运算 了解Python序列 创建列表和元组 通过索引访问元素 子序列 序列运算 序列 所谓序列,指的是一种包含多项数据的数据结…

【面试经典150 | 链表】循环链表

文章目录 Tag题目来源题目解读解题思路方法一:哈希集合方法二:快慢指针方法三:计数 拓展其他语言python3 写在最后 Tag 【快慢指针】【哈希集合】【计数】【链表】 题目来源 141. 环形链表 题目解读 判断一个链表中是否存在环。 解题思路 …

vue2中,下拉框多选和全选的实现

vue2中&#xff0c;下拉框多选和全选的实现 代码布局在methods: 中添加功能函数较为完整的一个整体代码&#xff1a; 如图所示点击全选即可完成下拉框中全部子项的全部的选中&#xff0c;同时取消全选即可全部取消选择。 代码布局 <div class"chos-box2"><…

STM32入门F4

学习资料&#xff1a;杨桃电子&#xff0c;官网&#xff1a;洋桃电子 | 杜洋工作室 www.doyoung.net 嵌入式开发核心宗旨&#xff1a;以最适合的性能、功能、成本来完成最有性价比的产品开发。 1.为什么要学F407 STM32F103系列与STM32F407系列对照表&#xff1a; 2.F4系列命…

Ruo-Yi前后端分离版本相关笔记

1.前提条件和基础 Spring Boot Vue 环境要求&#xff1a;Jdk1.8以上版本、MySql数据库、Redis、Maven、Vue 2.使用若依 官网地址&#xff1a;RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分…

渗透测试tomcat错误信息泄露解决办法

解决方法&#xff1a; 1、使用tomcat8.5.16&#xff0c;会重定向非法url到登录url 2、配置server.xml&#xff0c;加上 <Valve className"org.apache.catalina.valves.ErrorReportValve" showReport"false" showServerInfo"false" />配置…

Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀

2023年是OpenHarmony游戏生态百花齐放的一年&#xff01;为了扩展OpenHarmony游戏生态&#xff0c;OpenHarmony在基金会成立了游戏SIG小组&#xff0c;游戏SIG小组联合cocos&#xff0c;从cocos2dx入手一周内快速适配了cocos2.2.6的MVP版本&#xff0c;随后又分别适配了cocos2d…

扬尘在线监测 扬尘在线监测系统 扬尘监测设备

计讯物联扬尘在线监测系统&#xff0c;环保数采仪云管理平台&#xff0c;PM2.5、PM10、TSP、温度、湿度、噪声、大气压力、风力、风速、风向监测目标数据采集&#xff0c;5G/4G无线网络自动上报云端&#xff0c;相关部门实时远程在线监控&#xff0c;同时支持治污喷淋系统、视频…

msvcr100.dll丢失怎样修复,msvcr100.dll丢失怎么解决(最新方法分享)

我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcr100.dll丢失”。这个错误通常会导致某些程序无法正常运行。为了解决这个问题&#xff0c;我们需要采取一些措施来修复丢失的msvcr100.dll文件。本文将介绍五个有效的解决方法&#xff0c;帮助大家解决这一问题。 一…

OKLink携手CertiK在港举办Web3生态安全主题论坛

2023年10月23日&#xff0c;OKLink与CertiK共同发起的Web3生态安全主题论坛在香港铜锣湾拉开帷幕。本次论坛由OKLink和CertiK主办&#xff0c;香港投资推广署独家支持&#xff0c;聚焦如何构建安全可靠的Web3生态系统议题&#xff0c;同时深入剖析这一进程中所面临的潜在挑战。…