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

2024-06-09 01:04

本文主要是介绍LeetCode714买卖股票的最佳时机含手续费,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

  给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。

解析

  维护两个数值,一个是当天持股,一个是当天不持股。具体递推关系可以看代码注释。

class Solution {public int maxProfit(int[] prices, int fee) {int[][] dp = new int[2][prices.length];dp[0][0] = -prices[0];for(int i = 1; i < prices.length; i++) {dp[0][i] = Math.max(dp[0][i - 1],  // 前一天持股,今天依旧持股,不变dp[1][i - 1] - prices[i]  // 前一天不持股,今天持股,购入);dp[1][i] = Math.max(dp[1][i - 1],  // 前一天不持股,今天也不持股,不变dp[0][i - 1] + prices[i] - fee  // 前一天持股,今天不持股,出售);}return Math.max(dp[0][prices.length - 1], dp[1][prices.length - 1]);}
}

  然后就是题解的贪心方法,这种方式巧妙的利用了关系,对比购入价+手续费和当天的价格之间的关系。

public int maxProfit(int[] prices, int fee) {int n = prices.length;int buy = prices[0] + fee;int profit = 0;for (int i = 1; i < n; ++i) {if (prices[i] + fee < buy) {buy = prices[i] + fee;} else if (prices[i] > buy) {profit += prices[i] - buy;buy = prices[i];}}return profit;}

在这里插入图片描述

这篇关于LeetCode714买卖股票的最佳时机含手续费的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043820

相关文章

股票数据接口-陈科肇

陈科肇 新浪财经 sz-深圳sh-上海历史分价表:http://market.finance.sina.com.cn/pricehis.php?symbol=sz000506&startdate=2016-12-27&enddate=2016-12-27历史成交明细(当日成交明细):http://vip.stock.finance.sina.com.cn/quotes_service/v

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

佰朔资本:股票为什么会跌?跌了还会涨回来吗?

或许导致股票下跌的原因: 1、遭到商场环境要素影响,商场环境要素是指影响股票商场整体走势的要素,比如宏观经济、政策法规、商场资金、商场心境等。假如商场环境出现改变,比如经济添加放缓、政策收紧、资金紧张、商场不确定性添加等,那么投资者对股票的需求和持股决心就会下降,然后导致股价下跌。 2、遭到个股基本面要素影响,基本面要素是指影响股票内在价值的要素,比如企业的财务情况、成果表现、发展战略、管理水

猛兽财经:股价暴跌37.6%后,超微电脑股票还能继续投资吗?

来源:猛兽财经 作者:猛兽财经 S&P Global Market Intelligence的数据显示,超微电脑(SMCI)的股价在8月份遭受了两次重创(下跌了37.6%),目前的股价已经较3月份的高点低了64%。   超微电脑股价下跌的原因 第一个原因是,8月6日,超微电脑公布的2024财年第四季度业绩。由于超微电脑的销售成本增长高于收入增长,其收益也远低于华尔街的普遍预期和管理层的

计算机毕业设计Python+Tensorflow股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《Tensorflow股票预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和金融市场的日益复杂化,股票作为金融市场的重要组成部分,其价格波动受到广泛关注。传统的股票预测方法如技术分析和基本面分析,虽然在一定程度上能够辅助投资者做出决策,但存在主观性强、数据处理能力有限等不足,难以满足现代投资者的需求。因此,利用机器学习技术,特别是深度学习技术,对股票价格进行预测成为当前研究的热点

Python股票接口实现量化交易的优势是什么

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取股票实时数据和历史数据 Python炒股自动化(3):分析取回的实时数据和历史数据 Python炒股自动化(4):通过接口向交易所发送订单 Python炒股自动化(5):通过接口查询订单,查询账户资产 量化交易的优势与前景

《中文Python穿云箭量化平台二次开发技术09》设计一个可视化股票池量化平台项目用于实现选股和自动交易

《中文Python穿云箭量化平台》是纯Python开发的量化平台,因此其中很多Python模块,我们可以自己设计新的量化工具,例如自己新的行情软件、新的量化平台、以及各种量化研究工具。 穿云箭自带指标公式源码运行模块,可以为其他量化平台提供量化功能扩展或量化功能增强效果。 《中文Python穿云箭量化平台》包含有行情接口,指标运算模块,K线和指标显示模块。我们在投资分析研究和策略中,有很多可利用的

计算机毕业设计Spark+PyTorch股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《Spark+PyTorch股票推荐与预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和全球金融市场的日益繁荣,股票投资已成为广大投资者的重要选择之一。然而,股票市场的复杂性和不确定性使得投资者在做出投资决策时面临巨大的挑战。传统的股票分析方法主要依赖于人工收集、整理和分析大量的市场数据,这不仅效率低下,而且难以准确捕捉市场的细微变化。因此,利用大数据和人工智能技术构建一个高效、

猛兽财经:AMD股票值得长期投资吗?

来源:猛兽财经   作者:猛兽财经 过去三年对AMD来说可谓压力山大,由于个人电脑(PC)市场的疲软,AMD的股价一直承受着巨大的压力(AMD的股价在过去三年中仅上涨了44%,远远低于费城半导体指数56%的涨幅),与此同时,来自英伟达(NVDA)在游戏和数据中心领域的激烈竞争也削弱了投资者对AMD股票的信心。个人电脑市场的复苏给AMD带来了巨大的利好 IDC的数据显示,全球个人电脑出

QT Sql 实现多个股票成交明细数据文件制成数据库并支持查询

一.背景         上一篇我们学会了,如何用python自动化爬出交易软件的历史成交明细分笔数据,如果你没看到的话,这里有链接: AI 通过python脚本自动化导出交易软件某一天的分笔成交明细-CSDN博客,我们接着讲如何讲用QT分析这些数据并制成数据库文件来查询。 二.效果图 三.实现步骤          首先我们打开一份成交明细的文本数据,如下图:         根据