题目描述

给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):
你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。
示例:
输入: [1,2,3,0,2]
输出: 3
解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]

把几种状态对应的dp分析出来

func maxProfit(prices []int) int {if len(prices) == 0 {return 0}n := len(prices)// f[i][0]: 手上持有股票的最大收益// f[i][1]: 手上不持有股票,并且处于冷冻期中的累计最大收益// f[i][2]: 手上不持有股票,并且不在冷冻期中的累计最大收益f := make([][3]int, n)f[0][0] = -prices[0]for i := 1; i < n; i++ {f[i][0] = max(f[i-1][0], f[i-1][2] - prices[i])f[i][1] = f[i-1][0] + prices[i]f[i][2] = max(f[i-1][1], f[i-1][2]) }return max(f[n-1][1], f[n-1][2])
}func max(x, y int) int {if x > y {return x}return y
}

链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/solution/zui-jia-mai-mai-gu-piao-shi-ji-han-leng-dong-qi-4/

算法:买卖股票的最佳时机含冷冻期相关推荐

  1. 代码随想录贪心算法——买卖股票的最佳时机含手续费

    题目 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付手续费.如果你已经购买 ...

  2. 【数据结构与算法】之深入解析“最好买卖股票的时机含冷冻期”的求解思路与算法示例

    一.题目要求 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格.​ 设计一个算法计算出最大利润,在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票) ...

  3. 算法训练第五十一天 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结

    动态规划part12 309.最佳买卖股票时机含冷冻期 题目描述 思路 总结 714.买卖股票的最佳时机含手续费 题目描述 思路 股票问题总结 309.最佳买卖股票时机含冷冻期 题目链接:309.最佳 ...

  4. 力扣刷题day44|309最佳买卖股票时机含冷冻期、714买卖股票的最佳时机含手续费

    文章目录 309. 最佳买卖股票时机含冷冻期 思路 动态规划五部曲 714. 买卖股票的最佳时机含手续费 贪心思路 难点 动态规划思路 动态规划五部曲 309. 最佳买卖股票时机含冷冻期 力扣题目链接 ...

  5. 【第51天| 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 】

    309.最佳买卖股票时机含冷冻期 三个状态: 1. 当前持有股票状态1 2. 当前不持有股票,且不是今天卖出的股票状态2 3. 当前不持有股票, 且股票是今天卖出的状态3 题目要求前一天卖出了股票今天 ...

  6. 【算法】贪心算法:LeetCode 714 买卖股票的最佳时机含手续费 、LeetCode 968 监控二叉树

    LeetCode 714 买卖股票的最佳时机含手续费 (中等) 题目 描述 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你 ...

  7. 力扣算法JS LC [714. 买卖股票的最佳时机含手续费] LC [968. 监控二叉树]

    LC 714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你 ...

  8. 【贪心算法】Leetcode 714. 买卖股票的最佳时机含手续费

    [贪心算法]Leetcode 714. 买卖股票的最佳时机含手续费 题目 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. ...

  9. 代码随想录算法训练营第三十七天 | 738.单调递增的数字,714. 买卖股票的最佳时机含手续费,968.监控二叉树,总结

    Day36 周日休息~ 一.参考资料 单调递增的数字 https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9 ...

最新文章

  1. 电梯为什么显示停止服务器,教你奥的斯服务器怎么看故障
  2. RNN的优秀变种: LSTM GRU
  3. asp.net的cms 核心代码篇
  4. 99.999%,提升ElasticSearch稳定性的秘密
  5. mysql 插入记录慢_mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决...
  6. visual studio 调试python_Visual Studio Code Python 调试设置
  7. vue 兄弟组件之间的传值
  8. [转载]安全设置 IIS 中的权限
  9. 争取来的酷狗前端面试 共勉之
  10. 处理模型——找到对应一个方向的旋转角
  11. 短信sdk:使用阿里云短信sdk
  12. tp-801bs单板微型计算机,线切割应知应会
  13. [论文学习]Learn to Dance with AIST++: Music Conditioned 3D Dance Generation
  14. C# ListView 在指定行后面插入新行,并对行号重新排序。
  15. 超级计算机深蓝比卡斯帕罗夫聪明吗,【图片】卡斯帕罗夫对深蓝棋谱及简析【国际象棋吧】_百度贴吧...
  16. Pytorch不同层设置不同学习率
  17. 虚拟盒子下装linux系统,eUnoBox(虚拟盒子) v3.14免费版
  18. 非常实用FPGA实现CRC校验介绍和代码生成工具
  19. Python OpenCV 值 BUG: all the input arrays must have same number of dimensions
  20. CSS:改变 icon 图片的颜色

热门文章

  1. 【MATLAB】界面介绍 ( 标题栏 | 选项卡 | 命令窗口 | 编辑器 | 变量命名规则 )
  2. 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )
  3. 【Android 应用开发】 Fragment 详解
  4. Git冲突与解决方法【转】
  5. 如何设计一个好的数据结构?
  6. 17.4.28 清北第一天水题
  7. [Android]动态加载/热部署框架汇总
  8. 解析 this.initialize.apply(this, arguments)
  9. Flutter介绍 - Flutter,H5,React Native之间的对比
  10. SSM中shiro的基本使用