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

LeetCode 188 123:股票买卖问题(限制交易次数)—— 联合题解

LeetCode 188 & 123:股票买卖问题(限制交易次数)—— 联合题解 ✅

📌 题目列表

题号题目交易限制
123买卖股票的最佳时机 III最多2 次
188买卖股票的最佳时机 IV最多k 次

📖 内容概要

给定一个数组prices,其中prices[i]表示第i天的股价。
你最多可以完成k 笔交易(一次买入 + 一次卖出算一笔交易)。
求能获得的最大利润。

✅ 动态规划
✅ 状态机模型
✅ 面试 Hard 题


💡 核心思想(非常重要)

一、状态设计(统一)

dp[i][j]

含义:

  • i:第i
  • j:当前处于第几次交易的哪个阶段
j 的奇偶性含义
奇数持有股票(买入后)
偶数不持有股票(卖出后)

二、状态数量

  • 最多k次交易
  • 2 × k + 1个状态

🔁 状态转移(核心)

1️⃣ 持有股票(奇数状态)

dp[i][j]=max(dp[i-1][j],// 继续持有dp[i-1][j-1]-prices[i]// 在第 i 天买入)

2️⃣ 不持有股票(偶数状态)

dp[i][j]=max(dp[i-1][j],// 继续不持有dp[i-1][j-1]+prices[i]// 在第 i 天卖出)

✅ 123 题:最多 2 次交易(k = 2)

状态含义

状态含义
0第 1 次买入
1第 1 次卖出
2第 2 次买入
3第 2 次卖出

AC 代码(Java)

classSolution{publicintmaxProfit(int[]prices){intlen=prices.length;int[][]dp=newint[len][4];dp[0][0]=-prices[0];dp[0][1]=0;dp[0][2]=-prices[0];dp[0][3]=0;for(inti=1;i<len;i++){dp[i][0]=Math.max(dp[i-1][0],-prices[i]);dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);dp[i][2]=Math.max(dp[i-1][2],dp[i-1][1]-prices[i]);dp[i][3]=Math.max(dp[i-1][3],dp[i-1][2]+prices[i]);}returndp[len-1][3];}}

✅ 188 题:最多 k 次交易(通用解)

初始化(非常关键)

for(inti=1;i<2*k;i+=2){dp[0][i]=-prices[0];}

含义:

  • 所有“买入状态”初始化为-prices[0]
  • 所有“卖出状态”初始化为0

AC 代码(Java)

classSolution{publicintmaxProfit(intk,int[]prices){intlen=prices.length;int[][]dp=newint[len][2*k+1];// 初始化买入状态for(inti=1;i<2*k;i+=2){dp[0][i]=-prices[0];}for(inti=1;i<len;i++){for(intj=0;j<2*k;j+=2){dp[i][j+1]=Math.max(dp[i-1][j+1],dp[i-1][j]-prices[i]);dp[i][j+2]=Math.max(dp[i-1][j+2],dp[i-1][j+1]+prices[i]);}}returndp[len-1][2*k];}}

🔍 两题对比总结

对比项123(2 次)188(k 次)
状态数量固定 4 个2k + 1 个
初始化手写循环
遍历顺序明确枚举双层循环
本质特殊化泛化

⏱️ 复杂度分析

指标复杂度
时间复杂度O(n × k)
空间复杂度O(n × k)

✅ 一句话总结

股票交易次数受限 = 用奇偶状态表示“买入 / 卖出”,k 次交易就是 2k 个状态的状态机 DP。


📌 面试加分点(建议记住)

  • ✅ 为什么用奇偶状态?
  • ✅ 为什么买入状态初始化为负?
  • ✅ 为什么是dp[i-1][j-1] - price
  • ✅ 和无限次交易的本质区别
http://www.rkmt.cn/news/1482998.html

相关文章:

  • 为什么选择Bazzite:为游戏玩家打造的一站式Linux操作系统
  • 探讨2026年品牌影响力背书排名,资质齐全的品牌背书公司哪家性价比高 - myqiye
  • 2026 年 6 月国内舆情监测工具深度测评:场景适配度 + 性价比双维度精选优质服务商 - 玖叁鹿
  • KMS智能激活工具:5分钟永久激活Windows和Office的终极指南
  • 从前做NLP要8天,现在写几个Prompt20分钟搞定
  • 万亿级数据迁移实战与生产事故复盘
  • 终极指南:如何在Windows 11上完美运行经典DirectX游戏
  • Notepad-- 终极使用指南:跨平台文本编辑器的完整掌握手册
  • 2026年上海附近上门名酒回收机构排行及选择指南:上海五粮液回收/上海名酒回收电话/上海礼品回收/上海红酒回收/选择指南 - 优质品牌商家
  • 【LeetCode刷题日记】93.复原IP地址
  • CSDN爆款内容生成器背后的黑箱被拆解了:基于LSTM+时序聚类的选题生命周期预测模型(附训练数据集脱敏样本)
  • Python 爬虫项目 asyncio 协程异步抓取多页面公开资讯
  • 2026年室内装饰施工推荐,靠谱的品牌有哪些? - myqiye
  • 踩坑实录:多仓工程下AI Agent的七大治理原则
  • 成都涡轮快速门技术细节拆解与靠谱厂家判定逻辑:成都工业快速门、成都快速卷帘门、成都快速堆积门、成都快速提升门、成都快速门安装选择指南 - 优质品牌商家
  • 终极指南:如何在Linux上完美驱动Realtek WiFi 7网卡
  • 【飞机】飞机俯仰控制系统仿真【含Matlab源码 15598期】
  • AI编程15-重构与AI辅助代码改进:让AI帮你还技术债,代码可维护性提升200%
  • ComfyUI MixLab:革命性AI创作工作流转换器的创新突破
  • 2026 成都防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南(6 月最新) - 宅安选房屋修缮
  • 2026 年机器人咖啡行业代表性企业盘点:技术与场景双驱动的行业标杆 - 中媒介
  • 国内十大品牌声誉优化机构 2026 年 6 月实测报告:全方面能力测评 + 权威推荐榜单 - 玖叁鹿
  • 2026年财产分割律师推荐,宁波江北这家靠谱 - mypinpai
  • Python 爬虫项目 Scrapy 爬虫数据直连 MySQL 入库实战
  • CSDN AI数字营销开通即开票?不看这篇,90%企业多缴税、晚报销、无法抵扣!
  • 2026东莞搬家公司推荐:精密仪器搬迁避坑指南 - 从来都是英雄出少年
  • Claude动态工作流:一人顶百人,AI流水线彻底解放双手
  • 2026 年 6 月国内小红书舆情处理公司精选 TOP10:全方面测评 + 企业危机应对首选推荐 - 玖叁鹿
  • 2026年手提袋小批量厂家费用多少,正诚品印刷性价比高吗? - mypinpai
  • 长三角拉布灯箱厂家实力排行:工艺与服务对标 - 奔跑123