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

【学会动态规划】买卖股票的最佳时机含手续费(16)

目录

动态规划怎么学?

1. 题目解析

2. 算法原理

1. 状态表示

2. 状态转移方程

3. 初始化

4. 填表顺序

5. 返回值

3. 代码编写

写在最后:


动态规划怎么学?

学习一个算法没有捷径,更何况是学习动态规划,

跟我一起刷动态规划算法题,一起学会动态规划!

1. 题目解析

这道题也不难理解,主要有两个点需要注意,

首先是买了股票需要卖了才能再买(手里一次只能有一个股票)

买卖一次股票需要付一次手续费。

2. 算法原理

1. 状态表示

dp[ i ] 表示的是第 i 天结束之后,所能获得的最大利润,

实际上,这个也能细分成两种情况:

一种是第 i 天购买了股票,我们设为 f [ i ]

一种是第 i 天啥也不干,我们设为 g [ i ]

2. 状态转移方程

我们通过最近的一步来推导状态转移方程,总共需要分析两个:

如果第 i 天要进入买入股票的状态,那如果前一天已经买了,就什么都不用干,

如果第 i 天要进入买入股票的状态,如果前一天没买,那今天买就行,

所以 f [ i ] = max( f [ i - 1 ],g [ i - 1 ] - p [ i ] )

如果第 i 要进入卖出股票的状态,如果前一天没买,就啥都不用干,

如果第 i 要进入卖出股票的状态,如果前一天买了,那今天卖掉就行,

所以 g [ i ] = max( g [ i - 1 ],f [ i - 1 ] + p[ i ] - fee )

记得要减手续费 fee。

3. 初始化

f [ 0 ] = -p [ 0 ](就是买了当天的股票)g [ 0 ] = 0(啥都不干)

4. 填表顺序

从左往右,两个表同时填即可。

5. 返回值

g [ n - 1 ]

3. 代码编写

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

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

相关文章:

【学会动态规划】买卖股票的最佳时机含手续费(16)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…...

网络原因导致git下载报错处理办法

如下&#xff0c;git clone时报错&#xff1a; RPC failed; curl 18 transfer closed with outstanding read data remaining 5670 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet early EOF fetch-pack: invalid index…...

APP后端选择什么服务器

对于很多刚入行的朋友来说&#xff0c;不清楚应该选择什么样的服务器提供商&#xff0c;是选择传统的IDC, 租用服务器租用机柜&#xff0c;还是选择现在很火的云服务器呢&#xff1f;在本文中&#xff0c;通过对比传统的IDC和云服务&#xff0c;简单阐述一下服务器的选择。  …...

什么是反射机制,反射机制的应用场景

文章目录 反射机制介绍获取 Class 对象的四种方式代码实例静态编译和动态编译反射机制优缺点反射的应用场景 反射机制介绍 JAVA 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能…...

Visual Studio 2019 实用功能设置(背景颜色,代码字体及行号设置)

前言 Visual Studio 2019 安装包的下载教程、安装教程 教程 博主博客链接&#xff1a;https://blog.csdn.net/m0_74014525 关注博主&#xff0c;后期持续更新系列文章 系列文章 第一篇&#xff1a;Visual Studio 2019 详细安装教程&#xff08;图文版&#xff09; 第二篇&…...

简述Mysql索引

一、索引概述 1.1 索引概述 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。 索引的本质&#xff1a;索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”&#xff0c;满足特定查找算法。 这些数据结…...

windows .gitignore 加入文件名后 依然可以从git status中看到文件问题

最近在学git&#xff0c;对着b站的视频操作&#xff0c;结果很简单的添加.gitignore文件操作&#xff0c;up主的正常隐藏&#xff0c;我的却一直出问题。 百思不得其解&#xff0c;网上各种啥啥啥清缓存都没讲到点上。 最后发现是.gitignore文件有问题&#xff0c;windows默认…...

召唤神龙打造自己的ChatGPT

在之前的两篇文章中&#xff0c;我介绍了GPT 1和2的模型&#xff0c;并分别用Tensorflow和Pytorch来实现了模型的训练。具体可以见以下文章链接&#xff1a; 1. 基于Tensorflow来重现GPT v1模型_gzroy的博客-CSDN博客 2. 花费7元训练自己的GPT 2模型_gzroy的博客-CSDN博客 有…...

裝修公司同室內設計公司有咩分別?

很多裝修業主都會有裝修公司師傅會不會「出圖」的這個疑問。 出圖是指室內設計的各種圖&#xff0c;是設計師跟戶主和裝修師傅溝通裝修的工具&#xff0c;亦都係施工、驗收的證明。通常齊全的圖通常只有設計公司才可以完整提供例如平面圖、3D效果圖等等。 由於室內設計公司會…...

android oaid

Oaid获取接入流程 移动智能设备标识公共服务平台 AndroidID、IMEI、OAID获取 oaid_sdk_1.1.0的aar 随着Google对隐私的重视以及Android10的逐渐普及&#xff0c;获取设备的唯一标识越来越来难&#xff0c;在Android10以前&#xff0c;Android设备唯一标识包含IMEI、AndroidID、…...

利用XSS在线平台获取用户cookie

//XSS弹窗&#xff1a; <script>alert("xss")</script> XSS漏洞&#xff1a; //XSS弹窗&#xff1a; <script>alert("xss")</script> //XSS在线平台&#xff1a; <ScRipT sRc//7ix7kigpovxdbtd32fuspgffmtmufo3wwzgnzaltddewtb…...

rsync 命令以及脚本使用

rsync是什么&#xff1f; rsync 是一个远程同步工具 下载 你的集群每一台都需要下载&#xff01;&#xff08;也就是你需要同步的机器&#xff09; yum install -y xsync如果其他不下载就是报错的这样&#xff08;使用脚本的情况下&#xff0c;注意这里是提示 rsync没有找到…...

【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差

序号内容1【数理知识】自由度 degree of freedom 及自由度的计算方法2【数理知识】刚体 rigid body 及刚体的运动3【数理知识】刚体基本运动&#xff0c;平动&#xff0c;转动4【数理知识】向量数乘&#xff0c;内积&#xff0c;外积&#xff0c;matlab代码实现5【数理知识】协…...

WebDAV之π-Disk派盘+可达漫画

可达漫画这是一款专为阅读你的漫画收藏而设计的阅读器。 热爱漫画的你肯定收藏了不少各种类型的漫画,它们可能有各种各样的格式,zip,rar,cbz,cbr,epub, mobi 或 pdf,也可能只是单纯的文件夹。 可达漫画支持「流式阅读」,如果你的服务器使用 WebDAV 或 SMB 协议,那么…...

Spring中Bean的线程安全问题

Spring框架本身没有明确指出Bean的线程安全问题&#xff0c;所以Bean本身也不具备线程安全的特性&#xff0c;具体情况得看scope的情况。 1.原型的(prototype) 每次创建一个新的对象&#xff0c;每个线程使用的对象都是要新创建的&#xff0c;所以不会存在线程安全的问题。 2…...

Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成

目录 1. 成果展示2. 环境准备3. 项目构建3.1 项目结构3.2 引入Camunda 依赖3.3 启动spring boot 程序3.4 启动 web app 程序 引言&#xff1a;当今技术发展迅猛&#xff0c;企业对于业务流程的高效管理和自动化需求也日益增长。在这个背景下&#xff0c;Spring Boot和Camunda7成…...

手持式静电测试仪的运用原理

手持式静电测试仪&#xff08;Handheld Electrostatic Test Meter&#xff09;是一种用于测量和检测静电电荷的便携式设备。它通常用于工业生产、实验室研究、防静电控制和监测等领域。 手持式静电测试仪可以帮助用户快速准确地测量物体表面静电电荷的状态&#xff0c;从而评估…...

【css问题】flex布局中,子标签宽度超出父标签宽度,导致布局出现问题

场景&#xff1a;文章标题过长时&#xff0c;只显示一行&#xff0c;且多余的部分用省略号显示。 最终效果图&#xff1a; 实现时&#xff0c;flex布局&#xff0c;出现问题&#xff1a; 发现text-overflow: ellipsis不生效&#xff0c;省略符根本没有出现。 而且因为设置了 …...

【vue3】前端应用中使用WebSocket与服务器进行通信并管理连接状态。

1、写一个hook函数 export const useWebsocketToStore ({ onMessage }): any > {const url ws:地址 Math.random()const onConnected () > {}const onDisconnected () > {}const onError () > {}const onMessageDefault (ws: WebSocket, event: MessageEve…...

服务端高并发分布式结构演进之路

目录 一、常见概念 1.1基本概念 二、架构演进 2.1单机架构 2.2应用数据分离架构 2.3应用服务集群架构 2.4读写分离 / 主从分离架构 2.5引入缓存 —— 冷热分离架构 2.6垂直分库 2.7业务拆分 —— 微服务 一、常见概念 1.1基本概念 应用&#xff08;Application&am…...

LeetCode单词拆分:动态规划详解,Apache介绍和安装。

单词拆分问题概述 单词拆分&#xff08;Word Break&#xff09;是LeetCode上经典的动态规划问题&#xff0c;题目要求判断给定字符串是否可以被拆分为字典中的单词。例如&#xff0c;给定字符串"leetcode"和字典["leet", "code"]&#xff0c;返回…...

Vue微商城实战:从零搭建高效开发环境与核心配置

1. 环境准备&#xff1a;搭建Vue开发基础 第一次用Vue做微商城项目时&#xff0c;我对着官方文档折腾了半天环境配置&#xff0c;结果运行时报错一片红。后来才发现是node版本和脚手架不兼容的问题。这里分享下我总结的零失败配置方案&#xff0c;帮你避开90%的初期坑点。 首先…...

Linux性能调优工具全景解析与实战指南

1. Linux性能调优工具全景图解析作为一名在Linux系统管理领域摸爬滚打多年的老手&#xff0c;我深知性能调优是系统管理员和开发者的必修课。今天我要分享的这组工具图谱&#xff0c;可以说是Linux性能分析的"九阳真经"。这些图表最初由Brendan Gregg等性能专家整理&…...

从防御者视角看攻击:我用AntSword复现了一次真实的Webshell入侵,并总结了5条防护建议

从防御者视角拆解Webshell攻击链&#xff1a;基于AntSword的实战防护指南 当服务器日志里突然出现异常的PHP文件访问记录&#xff0c;或是网站目录下凭空多出一个陌生的shell.php时&#xff0c;很多运维团队才意识到防线早已被突破。去年某电商平台的用户数据泄露事件&#xff…...

【26大英赛】全国大学生英语竞赛高频核心词汇表pdf电子版(考前必背单词)

2026年全国大学生英语竞赛进入最后冲刺阶段&#xff0c;考试日期定于4月12日。距离考试仅剩6天时间&#xff0c;备考工作刻不容缓。 为助力考生高效复习&#xff0c;现推出最新版竞赛核心词汇手册。该资料以PDF电子版形式提供&#xff0c;支持自由下载和打印使用&#xff0c;方…...

ICLR 2026 | 大模型当裁判也“翻车“?北大清华联合多校提出TrustJudge,让LLM评估更值得信赖

让 GPT-4 给两篇文章打分&#xff0c;A 拿了 4 分、B 拿了 3 分。按常理 A 应该比 B 好吧&#xff1f;但换成成对比较&#xff0c;同一个模型却说 "B 更好"。更离谱的情况也有——A > B > C > A 的"石头剪刀布"循环&#xff0c;连传递性都守不住。…...

Oracle EBS 6+2 段式 COA 架构 拆到最细、可直接落地 EBS 的版本,每一段的作用、限定词、长度、编码规则、为什么这么设计全部讲清楚

把 62 段式 COA 架构 拆到最细、可直接落地 EBS 的版本&#xff0c;每一段的作用、限定词、长度、编码规则、为什么这么设计全部讲清楚&#xff0c;你可以直接拿去做方案文档。一、62 段式架构总定义6 段 法定核算 管理核算的核心骨架&#xff08;必须固定&#xff09;2 段 …...

ImportError: cannot import name ‘model_from_config‘ from ‘tensorflow.keras.models‘ 的解决方案

不慌&#xff0c;这是因为我们使用的 keras-rl2 库试图从 TensorFlow/Keras 中导入一个名为 model_from_config 的函数&#xff0c;但这个函数在新版本的 TensorFlow&#xff08;通常是 2.16.0 及以上&#xff09;中已经被移除或移动了。 在你的默认路径找到"C:\Users\HP…...

比迪丽LoRA部署优化:TensorRT加速后推理速度提升300%实测

比迪丽LoRA部署优化&#xff1a;TensorRT加速后推理速度提升300%实测 1. 引言&#xff1a;当二次元老婆遇上推理加速 如果你玩过AI绘画&#xff0c;尤其是喜欢生成《龙珠》里的角色比迪丽&#xff0c;那你一定知道等待图片生成时的那种心情——看着进度条一点点爬&#xff0c…...

SEO_新手必学的搜索引擎优化入门教程

SEO:新手必学的搜索引擎优化入门教程 在现代互联网时代&#xff0c;拥有一个高质量的网站是必不可少的&#xff0c;但仅有一个好的网站还远远不够。为了让更多的人能看到你的网站&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;显得尤为重要。SEO是提高网站在搜索引擎结…...