Best Time to Buy and Sell Stock with Cooldown
来源:互联网 发布:大学公选课网络课 编辑:程序博客网 时间:2024/06/04 18:07
来源:http://segmentfault.com/a/1190000004193861
因为当前日期买卖股票会受到之前日期买卖股票行为的影响,首先考虑到用DP解决。
这道题比较麻烦的是有个cooldown的限制,其实本质也就是买与卖之间的限制。对于某一天,股票有三种状态: buy, sell, cooldown, sell与cooldown我们可以合并成一种状态,因为手里最终都没股票,最终需要的结果是sell,即手里股票卖了获得最大利润。所以我们可以用两个DP数组分别记录当前持股跟未持股的状态。然后根据题目中的限制条件,理清两个DP数组的表达式。
对于当天最终未持股的状态,最终最大利润有两种可能,一是今天没动作跟昨天未持股状态一样,二是昨天持股了,今天卖了。所以我们只要取这两者之间最大值即可,表达式如下:
sellDp[i] = Math.max(sellDp[i - 1], buyDp[i - 1] + prices[i]);
对于当天最终持股的状态,最终最大利润有两种可能,一是今天没动作跟昨天持股状态一样,二是前天还没持股,今天买了股票,这里是因为cooldown的原因,所以今天买股要追溯到前天的状态。我们只要取这两者之间最大值即可,表达式如下:
buyDp[i] = Math.max(buyDp[i - 1], sellDp[i - 2] - prices[i]);
最终我们要求的结果是
sellDp[n - 1] 表示最后一天结束时手里没股票时的累积最大利润
当然,这里空间复杂度是可以降到O(1)的,具体见第二种代码实现。
0 0
- 309Best Time to Buy and Sell Stock with Cooldown
- leetcode Best Time to Buy and Sell Stock with Cooldown
- Best Time to Buy and Sell Stock with Cooldown
- Leetcode197: Best Time to Buy and Sell Stock with Cooldown
- LeetCode Best Time to Buy and Sell Stock with Cooldown
- Leetcode: Best Time to Buy and Sell Stock with Cooldown
- Best Time to Buy and Sell Stock with Cooldown
- [LeetCode]Best Time to Buy and Sell Stock with Cooldown
- Leetcode Best Time to Buy and Sell Stock with Cooldown
- leetcode - Best Time to Buy and Sell Stock with Cooldown
- Best Time to Buy and Sell Stock with Cooldown
- LeetCode:Best Time to Buy and Sell Stock with Cooldown
- 309.Best Time to Buy and Sell Stock with Cooldown
- 309. Best Time to Buy and Sell Stock with Cooldown
- 309. Best Time to Buy and Sell Stock with Cooldown
- 309. Best Time to Buy and Sell Stock with Cooldown
- leetcode_309 Best Time to Buy and Sell Stock with Cooldown
- 309. Best Time to Buy and Sell Stock with Cooldown
- 安卓中测量控件的高度
- iOS适配的相关内容的整理
- 请关闭你的等死模式
- 构造函数的使用
- Mac下Jenkins安装(一)
- Best Time to Buy and Sell Stock with Cooldown
- Maven项目显示红叹号
- 流体布局CSS3中 calc()的使用 顺带box-sizing
- LintCode-简单-字符串查找
- hdoj5073Galaxy【方差】
- UICollectionView: 1>UICollectionViewFlowLayout流式布局
- *LeetCode 29. Divide Two Integers
- iOS 图像开发之Quartz 2D
- 这一段时间的事