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

LeetCode 买卖股票最佳时机含手续费题解

LeetCode 买卖股票最佳时机含手续费题解

题目描述

给定一个整数数组 prices,其中第 i 个元素表示第 i 天的股票价格。设计一个算法计算出最大利润。你可以无限次地完成交易,但是每次交易都需要手续费。

示例

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

解题思路

方法:动态规划

思路

  • 使用动态规划,维护两种状态:持有现金和持有股票。
  • 持有现金:之前就已经不持有股票,或者今天卖出了股票。
  • 持有股票:之前就持有股票,或者今天买入了股票。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

代码实现

def max_profit(prices, fee): cash = 0 hold = -prices[0] for i in range(1, len(prices)): cash = max(cash, hold + prices[i] - fee) hold = max(hold, cash - prices[i]) return cash # 测试 def test_max_profit(): prices = [1, 3, 2, 8, 4, 9] fee = 2 print(max_profit(prices, fee)) # 输出:8 if __name__ == "__main__": test_max_profit()

总结

买卖股票最佳时机含手续费是动态规划的典型应用,通过维护持有现金和持有股票两种状态来计算最大利润。

http://www.jsqmd.com/news/833030/

相关文章:

  • 2026年5月北京老房改造装修公司推荐:五家排名评测夜读防眼干 - 品牌推荐
  • 设计令牌编排器:自动化打通设计与开发工作流
  • 基于ULN2803与微控制器的可编程霓虹灯牌设计与实现
  • 分布式系统核心模式实践:从Raft共识到键值存储构建
  • 企业级后端四层架构实战:从理论到代码的清晰落地
  • 项目八: 配置与管理FTP服务器(1) C1
  • 开源AI图像生成工具Dream-Creator:本地部署与Stable Diffusion实战指南
  • Flutter AI聊天界面开发:flutter_gpt_box组件库深度解析与实战
  • 为AI智能体构建长期记忆系统:从向量检索到个性化对话实践
  • 揭秘Midjourney“树胶重铬酸盐”风格指令:3步精准触发古典印相质感,92%用户从未用对的隐藏参数组合
  • OpenClaw信号处理库:模块化设计赋能嵌入式实时信号处理
  • LeetCode 拼接最大数字题解
  • AI驱动工作流自动化:从原理到实践,构建智能效率引擎
  • 开源医疗AI智能体平台:多智能体协同与RAG技术实战解析
  • 开源项目精细化协作:从蓝图到任务,LetsFG如何重塑早期开发流程
  • 从零到显示:用CubeMX+LVGL 8.3给你的STM32项目快速加个UI界面
  • 基于RAG的智能知识库问答系统:从原理到部署实战
  • 药物发现自动化:FEP计算工作流引擎faah的设计原理与实战
  • 2025-2026年北京装修设计公司推荐:五家口碑好的评测别墅装修防施工延期注意事项 - 品牌推荐
  • 基于adhocore/docker-phpfpm镜像的PHP容器化部署与性能调优实战
  • Shell脚本安全防护:静态分析与运行时防护工具ShellGuard详解
  • 自动化品牌设计实践:从设计系统到一键生成完整视觉资产
  • Swift智能体技能库:AI Agent工具调用与Swift集成实践
  • 保姆级教程:用斐讯N1盒子刷Armbian 5.77,打造你的专属Debian服务器(附解决高负载问题)
  • Docker化Emacs:实现开发环境隔离与可复现的容器化实践
  • openpisci:C语言轻量级数据流处理框架在边缘计算与物联网中的应用
  • 智能GUI自动化:从SAG架构到实战部署的完整指南
  • 基于Vue 3的轻量级ChatGPT前端项目架构与实现详解
  • 2026年5月酒店帐篷厂家推荐:五大品牌专业评测山地露营防风性痛点 - 品牌推荐
  • 项目八: 配置与管理FTP服务器(2) C2