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

714. 买卖股票的最佳时机含手续费 - 力扣(LeetCode)

给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。

你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。

返回获得利润的最大值。

注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。

示例 1:

输入:prices = [1, 3, 2, 8, 4, 9], fee = 2
输出:8
解释:能够达到的最大利润:  
在此处买入 prices[0] = 1
在此处卖出 prices[3] = 8
在此处买入 prices[4] = 4
在此处卖出 prices[5] = 9
总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8

示例 2:

输入:prices = [1,3,7,5,10,3], fee = 3
输出:6

提示:

  • 1 <= prices.length <= 5 * 104
  • 1 <= prices[i] < 5 * 104
  • 0 <= fee < 5 * 104

思路

依旧是动态规划的问题,那么首先要确认状态转移方程,这次相比于之前多了一个手续费,只要在每次卖出的时候减去这个手续费就可以了

当我买入股票的时候,就是比较之前没有股票时候的状态(dp[1]-prices[i])和不买入这只股票(dp[0])的大小;这里在持有股票的时候之所以用dp[1]是因为,dp[1]是卖出股票之后的状态,也就是这个时候是没有股票在身上的,所以用dp[1]来减去买股票时用的钱

当我想卖出股票的时候,就是比较持有股票时候(dp[0]+prices[i]-fee)和不卖出股票时候(dp[1])的状态

完整代码

    class Solution {public int maxProfit(int[] prices, int fee) {int n = prices.length;int []dp = new int[2];dp[0] = -prices[0];//买入dp[1] = 0;//卖出for (int i = 1; i < prices.length; i++) {dp[0] = max(dp[1]-prices[i],dp[0]);dp[1] = max(dp[0]+prices[i]-fee,dp[1]);}return dp[1];}public static int max(int a,int b){return a>b?a:b;}}

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

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

相关文章

c# 正则表达式

正则表达式 是一种匹配输入文本的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符、运算符和结构组成。 定义正则表达式 下面列出了用于定义正则表达式的各种类别的字符、运算符和结构。 字符转义字符类定位点分组构造限定符反向引用构造备用构造…

计算机专业毕业设计项目推荐12-志愿者管理系统(Spring+Js+Mysql)

志愿者管理系统&#xff08;SpringJsMysql&#xff09; **介绍****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式&#xff0c;在编写的过程…

QT:鼠标画线(双画布)

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPoint> //点 #include <QMouseEvent> //鼠标事件 #include <QPaintEvent> //绘图事件class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent 0);~Wi…

汽车网络安全--安全芯片应用场景解析

​在聊汽车网络安全时,最先想到的就是使用芯片内置HSM,比如说英飞凌TC2xx系列的HSM、瑞萨RH850的ICU、NXP的HSE等等;实际上除了内置HSM,还有外置HSM(通过UART、SPI等通信)、安全存储芯片等等。而这些芯片统称为安全芯片。 安全芯片的主要作用是为整个系统建立起一个可信的…

PHP之redis 和 memache面试题

目录 1、什么是Redis&#xff1f;它的主要特点是什么&#xff1f; 2、redis数据类型 3、Redis的持久化机制有哪些&#xff1f;它们之间有什么区别&#xff1f; 4、Redis的主从复制是什么&#xff1f;如何配置Redis的主从复制&#xff1f; 5、Redis的集群模式是什么&#xf…

IIS Application Pool

在连接字符串Connection string中&#xff0c;Pooling为是否启用连接池&#xff0c;默认值为Poolingtrue&#xff0c;表示启用。与连接池相关的两个重要参数是 Min Pool Size(默认值是0) 和 Max Pool Size (默認值為100&#xff0c;最大值为32767)&#xff0c;分别指池中的最小…

Memtester框架是什么

Memtester 是一个用于测试系统内存稳定性和可靠性的工具。它可以模拟内存负载&#xff0c;并检查是否存在内存错误或故障。 安装 Memtester&#xff1a;在终端中运行适用于您的操作系统的安装命令&#xff0c;例如&#xff1a; 对于 Ubuntu 或 Debian&#xff1a; sudo apt-get…

通过融合UGV的地图信息和IMU的惯性测量数据,实现对车辆精确位置和运动状态的估计和跟踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

543. 二叉树的直径

题目描述 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,…

ChatGPT基础使用总结

文章目录 一、ChatGPT基础概念大型语言模型LLMs---一种能够以类似人类语言的方式“说话”的软件ChatGPT定义---OpenAI 研发的一款聊天机器人程序&#xff08;2022年GPT-3.5&#xff0c;属于大型语言模型&#xff09;ChatGPT4.0---OpenAI推出了GPT系列的最新模型ChatGPT典型使用…

FusionCharts Suite XT v3.21 Crack

FusionCharts Suite XT v3.21 在圆环图和饼图上将图例和数据值显示为百分比或绝对值。 2023 年 10 月 4 日 - 15:15新版本 特征 通过允许用户将图例和数据值显示为百分比或绝对值&#xff0c;改进了圆环图和饼图。 添加了一个新功能&#xff0c;可以删除任何可能导致代码错误的…

电脑数据恢复怎么操作?电脑数据恢复难点是什么

随着电脑在我们日常生活中的普及&#xff0c;数据的重要性不言而喻。然而&#xff0c;在某些情况下&#xff0c;我们可能会不小心删除或因其他原因导致丢失了重要的电脑数据&#xff0c;这时候就需要进行数据恢复操作。下面我们一起来了解下电脑数据恢复的操作方法&#xff0c;…

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

问题&#xff1a; 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&#xff0c;你无法…

多媒体应用设计师

1.多媒体技术基础 1.1.媒体与技术 1.1.媒体 维基百科&#xff1a;传播信息载体 国际电信联盟&#xff08;ITU-T&#xff09;&#xff1a;感知、表示、存储和传输的手段和方法。 两层含义&#xff1a;存储信息的实体&#xff0c;媒质。传递信息载体&#xff0c;媒介。 1.2.国…

游戏设计模式专栏(五):三步学会原型模式

引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》&#xff0c;让糟糕的代码在潜移默化中升华&#xff0c;欢迎大家关注分享收藏订阅。 原型模式在游戏开发中是一种重要的设计模式&#xff0c;…

微服务部署的正确策略

微服务部署挑战 单体应用程序的部署意味着您运行单个&#xff08;通常是大型应用程序&#xff09;的多个相同副本。这主要是通过配置 N 个服务器&#xff08;无论是物理服务器还是虚拟服务器&#xff09;并在每台服务器上运行应用程序的 M 个实例来完成。虽然这看起来非常简单…

节日灯饰灯串灯出口欧洲CE认证办理

灯串&#xff08;灯带&#xff09;&#xff0c;这个产品的形状就象一根带子一样&#xff0c;再加上产品的主要原件就是LED&#xff0c;因此叫做灯串或者灯带。2022年&#xff0c;我国灯具及相关配件产品出口总额超过460亿美元。其中北美是最大的出口市场。其次是欧洲市场&#…

display有哪些值

CSS的display属性用于控制元素的显示方式&#xff0c;它可以设置多种不同的值&#xff0c;以决定元素在文档中的呈现方式。以下是一些常见的display属性值&#xff1a; block&#xff1a; 元素以块级元素的方式显示。换行&#xff0c;并且占据父容器的整个可用宽度。常见的块级…

SQL创建新表

表的创建、修改与删除&#xff1a; 1.1 直接创建表&#xff1a;CREATE TABLE [IF NOT EXISTS] tb_name – 不存在才创建&#xff0c;存在就跳过 (column_name1 data_type1 – 列名和类型必选 [ PRIMARY KEY – 可选的约束&#xff0c;主键 | FOREIGN KEY – 外键&#xff0c;引…

Python 字节码介绍

了解 Python 字节码是什么&#xff0c;Python 如何使用它来执行你的代码&#xff0c;以及知道它是如何帮到你的。 ​编辑 如果你曾经编写过 Python&#xff0c;或者只是使用过 Python&#xff0c;你或许经常会看到 Python 源代码文件——它们的名字以 .py 结尾。你可能还看到过…