代码随想录算法训练营day51 | 309. 最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费,股票问题总结

news2024/11/25 17:22:09

代码随想录算法训练营day51 | 309. 最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费,股票问题总结

  • 309. 最佳买卖股票时机含冷冻期
    • 解法一:动态规划
  • 714.买卖股票的最佳时机含手续费
    • 解法一:动态规划
  • 股票问题总结


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

教程视频:https://www.bilibili.com/video/BV1rP4y1D7ku
在这里插入图片描述

解法一:动态规划

思路:
1、dp[i][j]含义:
第 i 天 j 状态下手中所持金额。j 共有状态:0表示未持有股票且不在冷冻期,1表示持有股票,2表示冷冻期。
2、递推公式:
dp[i][0]=Math.max(dp[i-1][0], dp[i-1][2]);
dp[i][1]=Math.max(dp[i-1][1], dp[i-1][0]-prices[i]);
dp[i][2]=dp[i-1][1]+prices[i];
3、初始化dp:
dp[0][0]=0;
dp[0][1]=-prices[0];
dp[0][2]=0;
4、遍历顺序:正向遍历
5、打印验证

class Solution {
    public int maxProfit(int[] prices) {
        int[][] dp = new int[prices.length][3];

        dp[0][1] = -prices[0];

        for(int i=1;i<prices.length;i++){
            dp[i][0]=Math.max(dp[i-1][0], dp[i-1][2]);
            dp[i][1]=Math.max(dp[i-1][1], dp[i-1][0]-prices[i]);
            dp[i][2]=dp[i-1][1]+prices[i];
        }
        return Math.max(dp[prices.length-1][0], dp[prices.length-1][2]);
    }
}

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

教程视频:https://www.bilibili.com/video/BV1z44y1Z7UR
在这里插入图片描述
在这里插入图片描述

解法一:动态规划

思路:
1、dp[i][j]含义:第 i 天 j 状态下手中所持金额。j 共有状态:0表示未持有股票,1表示持有股票。
2、递推公式:
dp[i][0]=Math.max(dp[i-1][0], dp[i-1][1]+prices[i]);
dp[i][1]=Math.max(dp[i-1][1], dp[i-1][0]-prices[i]-fee);//买入时支付费用
3、初始化dp:dp[0][0]=0;
dp[0][1]=-prices[0]-fee;
4、遍历顺序:正向遍历;
5、打印验证

class Solution {
    public int maxProfit(int[] prices, int fee) {
        int[][] dp = new int[prices.length][2];
        dp[0][1]=-prices[0]-fee;
        for(int i=1;i<prices.length;i++){
            dp[i][0]=Math.max(dp[i-1][0], dp[i-1][1]+prices[i]);
            dp[i][1]=Math.max(dp[i-1][1], dp[i-1][0]-prices[i]-fee);
        }
        return dp[prices.length-1][0];
    }
}

//空间优化
class Solution {
    public int maxProfit(int[] prices, int fee) {
        int[] dp = new int[2];
        dp[1]=-prices[0]-fee;
        for(int i=1;i<prices.length;i++){
            dp[0]=Math.max(dp[0], dp[1]+prices[i]);
            dp[1]=Math.max(dp[1], dp[0]-prices[i]-fee);
        }
        return dp[0];
    }
}

股票问题总结

一共做了6道股票题目:

121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

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

309. 最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

  1. 121.买卖股票的最佳时机只能买卖一次
  2. 122.买卖股票的最佳时机II可以买卖多次
  3. 123.买卖股票的最佳时机III至多可以买卖两次
  4. 188.买卖股票的最佳时机IV至多可以买卖k次
  5. 309.最佳买卖股票时机含冷冻期冷冻期不能买卖
  6. 714.买卖股票的最佳时机含手续费可以买卖多次但每次交易需要支付手续费

第1,2题的差异在于第 i 天买入股票时,1题手中金额为0,二题手中金额为上一阶段未持有时金额dp[i-1][0]。
第3,4题将状态增加了,尤其是第四题,需要2*k列来描述第 i 天的状态,其余和第二题差异不大。
第5题增加了一个冷冻期状态,其递推转移相较于第2题有变化。
第6题相较于第2题仅在买入或者卖出时扣除手续费即可

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

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

相关文章

矿井水除总氮工艺详解

一、项目概述 项目背景: 1、水资源浪费长期以来&#xff0c;采煤对地下水造成了严重破坏。绝大部分矿井水&#xff0c;被以直排方式&#xff0c;流入河道、田野&#xff0c;这不仅造成水资源的白白浪费&#xff0c;也污染了环境。社会对此反响强烈的同时&#xff0c;煤矿企业也…

BT131-ASEMI代理KY原装双向可控硅BT131

编辑&#xff1a;ll BT131-ASEMI代理KY原装双向可控硅BT131 型号&#xff1a;BT131 品牌&#xff1a;韩景元\KY 封装&#xff1a;TO-92 特性&#xff1a;可控硅 正向电流&#xff1a;1A 反向耐压&#xff1a;600V 触发电压&#xff1a; 0.62&#xff5e;0.8 V 引脚数量…

ES(Elasticsearch)的docker安装部署教程

0、 服务器版本信息 Red Hat 4.8.5-44 CentOS Linux release 7.9.2009 (Core) 1、ES部署 1.1 拉取docker镜像 docker pull elasticsearch:7.10.1拉取成功的镜像&#xff0c;可以使用如下命令查看&#xff1a; docker images 上图2年之前表示该elasticsearch的7.10.1镜像版…

从传统 IT 容灾转向“全栈云容灾”|什么是更适合政企的云

凌晨 3 点&#xff0c;在某医院的自助缴费机前&#xff0c;一位医患家属正愁眉紧锁&#xff0c;手中的医保卡已经刷了无数遍&#xff0c;可次次都提示缴费失败&#xff0c;至亲的手术已经迫在眉睫… 早上 8 点&#xff0c;是上班族在通勤途中打开新闻 app 刷新闻的高峰&#x…

vue3+vite 中使用百度地图【两种方式】

vue3vite项目中使用百度地图 方式一&#xff1a;直接使用百度地图的ak方式二&#xff1a;使用vue-baidu-map-3x插件 方式一&#xff1a;直接使用百度地图的ak 提前准备&#xff1a; 创建一个vite项目申请好的百度地图ak值 百度地图使用&#xff1a; 在创建好的vite项目的入…

python 编译安装与脚本安装

编译安装的一般步骤&#xff1a; 安装依赖&#xff0c;安装依赖的第三方的工具&#xff0c;yum可以解决 编译安装的包中都有&#xff1a;configure 文件 进行预编译&#xff1a;检查你的环境是否合格 ./configure --prefixxxx 生成编译的文件&#xff1a;MakeFile python安装&…

Taobao.item_search-淘宝商品列表接口、关键词搜索淘宝商品列表接口

淘宝商品列表接口是淘宝开放平台提供的一个接口&#xff0c;可以返回符合指定条件的商品列表&#xff0c;开发者可以根据自己的需要在自己的应用中使用。 请求方式 淘宝商品列表接口使用 HTTP GET 请求方式。 请求 URL 请求URL如下&#xff1a;http://o0b.cn/opandy 请求参…

一文读懂循环队列的实现细节

循环队列最早出现在计算机系统设计中&#xff0c;它的出现主要是为了满足实际需求&#xff1a;在存储机制上&#xff0c;传统的队列存储方式难以满足一些实际应用中需要存储大量数据的场景。在有限的数组空间内&#xff0c;传统的队列存储方式可能会出现存储空间浪费过多、存储…

使用 StarCoder 创建一个编程助手

如果你是一个软件开发者&#xff0c;你可能已经使用过 ChatGPT 或 GitHub 的 Copilot 去解决一些写代码过程中遇到的问题&#xff0c;比如将代码从一种语言翻译到另一种语言&#xff0c;或者通过自然语言&#xff0c;诸如“写一个计算斐波那契数列第 N 个元素的 Python 程序”&…

[分享] 冒险岛079私服搭建

文章目录 前言目录介绍环境介绍过程第一步启动phpStudy.exe第二步 启动服务端.bat第三步 启动登录器.bat 总结常见问题 前言 好几年前找一个079版本冒险岛私服版本&#xff0c;本地玩了一下&#xff0c;感觉不错还研究了一下自带的GM工具。 现在朋友需要&#xff0c;记录一下踩…

交直流电流钳的用途和使用

电流钳是一种非侵入式检测设备&#xff0c;并不要求把采集端接入电路。一旦接入电路&#xff0c;就后会有阻抗的问题。霍尔线圈能够感应交流电流&#xff0c;但是无法感应直流信号。市售的电流钳&#xff0c;仍然是非接触测量&#xff0c;但交直流电流都能采&#xff0c;并且配…

Java的URI类

文章目录 1. 简介2. 构造一个URI3. URI的各个部分4. 解析相对URI5. 相等性和比较6. 字符串表示 1. 简介 URI是对URL的抽象&#xff0c;不仅包含统一资源定位符&#xff0c;还包括统一资源名&#xff08;URN&#xff09;。实际使用的URI大多是URL&#xff0c;但大多数规范和标准…

spring高频面试题

什么是IOC Spring框架提供的一种容器,用于控制对象的创建和对象之间的调用&#xff0c;通过IOC容器把对象的创建和调用过程交给Spring进行管理&#xff0c;省去了使用 new的方式创建对象。 所谓依赖注入(DI)&#xff0c;就是由IOC容器在运行期间&#xff0c;动态地将某种依赖关…

生态系统模型:SolVES、DNDC、CMIP6、GEE林业、APSIM、InVEST、无人机遥感、ArcGIS Pro模型等

基于R语言APSIM模型高级应用及批量模拟实践技术 CMIP6 数据处理方法与典型案例分析实践技术 Python 与 Noah-MP 陆面过程模型融合技术及在站点、区域模拟实践应用 双碳目标下基于“遥感”融合技术在碳储量、碳收支、碳循环等多领域监测与模拟实践应用 基于Citespace和vosvi…

扩展定时器功能说明

计数和定时 ⚫ 16bit upcounter ⚫ 上升沿或下降沿计数 ⚫ 计数初值和终值可配置 ⚫ 计数值大于等于比较值时触发中断 ⚫ 计数溢出后自动重载 ⚫ 计数周期中可以通过改写重载寄存器修改下一周期长度 支持16bit计数或级联的32bit计数。当CNTSEL0&#xff0c;计数器为16bit&#…

快手新财报:曙光就在冲刺路上?

自短视频爆火以来&#xff0c;短视频行业的头部玩家——抖音和快手就迎来了飞速发展&#xff0c;甚至一度成为了国民“杀时间利器”。然而&#xff0c;随着互联网红利逐渐见顶&#xff0c;短视频行业竞争加剧&#xff0c;哪怕作为头部玩家&#xff0c;快手的日子也并不好过。 …

Tatuk GIS Developer Kernel for .NET 11.77 Crack

Tatuk GIS Developer Kernel for .NET 是一个变体&#xff0c;它是受控代码和 .NET GIS SDK&#xff0c;用于为用户 Windows 操作系统创建 GIS 专业软件的过程。它被认为是一个完全用于 Win Forms 的 .NET CIL&#xff0c;WPF 的框架是为 C# 以及 VB.NET、VC、oxygen 以及最终与…

Learn From Microsoft Build Ⅰ:OpenAI

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0…

android性能测试-内存详解

Android性能测试-内存详解 名称说明Native HeapNative代码分配的内存&#xff0c;虚拟机和Android框架分配内存。关于什么是Native代码&#xff0c;即非Java代码分配的内存。Dalvik HeapJava对象分配的占据内存Dalvik Other类数据结构和索引占据内存Stack栈内存Other dev内部dr…

盐城北大青鸟东台基地IT精英挑战赛设计类作品展示

北大青鸟IT精英挑战赛作品展示——《黄小果》 这是我们22级新生王欣怡的作品&#xff0c;她是一位很优秀的 学生&#xff0c;经过一年的学习能够熟练的制作表情包