【leetcode-Python】-Dynamic Programming -309. Best Time to Buy and Sell Stock with Cooldown

给定股票价格数组和交易费,不限交易次数,每次交易后需支付手续费。算法目标是计算最大利润。例如,输入prices=[1,3,2,8,4,9],fee=2,最大利润为8。通过动态规划,在前一次交易后的冷却日买入,高价日卖出,考虑交易费,实现利润最大化。时间复杂度为O(N),空间复杂度为O(1)。" 115759446,10213439,干电池及锂电池升压充电解决方案,"['电源管理', '集成电路', '电池技术', '电子工程', '升压转换器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/

题目描述

给定价格数组prices,prices[i]表示一支给定股票第i天的价格。不限交易次数,但每次交易需要支付一笔手续费(卖掉手里的股票后才能再次购买),设计算法来计算能够获得的最大利润。

示例

输入:prices = [1,3,2,8,4,9],fee = 2

输出:8

第0天(价格为1)买入,第3天(价格为8)卖出,得到利润5。第4天(价格为4)买入,第5天(价格为9)卖出,得到利润3。总利润为8。

解题思路

【leetcode-Python】-Dynamic Programming -122. Best Time to Buy and Sell Stock II的基础上把交易费从利润中减去即可,交易费可以在买入或者卖出时减去。

Python实现

卖出股票收交易费:

class Solution:
    def maxProfit(self, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值