Leetcode 309. Best Time to Buy and Sell Stock with Cooldown
来源:互联网 发布:上海每日房屋成交数据 编辑:程序博客网 时间:2024/06/07 10:35
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times) with the following restrictions:
- You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
- After you sell your stock, you cannot buy stock on next day. (ie, cooldown 1 day)
Example:
prices = [1, 2, 3, 0, 2]maxProfit = 3transactions = [buy, sell, cooldown, buy, sell]
卖完股票后有一天不可以买股票
buy [i] 表示 经过一系列买卖后,buy 是最后一项,到 第 i 项 所获得的利益
sell [i] 表示 经过一系列买卖后,sell 是最后一项,到 第 i 项 所获得的利益
怎样让buy 最大?(在 第 i 项 buy 是最后一个操作,最大化所得利益)
buy[i] = max(buy[i - 1], sell [i - 2] - prices[i])在 buy的上一项中 和 sell 上上项 减去 当前价格中,选取一个
怎样让buy 最大?(在 第 i 项 buy 是最后一个操作,最大化所得利益)
sell[i] = max(sell[i - 1], buy[i - 1] + prices[i])在 sell 的前一项 和 buy的前一项 加上 当前价格中,选取一个
public int maxProfit(int[] prices) { if(prices == null || prices.length <= 1) { return 0; } int len = prices.length; int[] buy = new int[len]; int[] sell = new int[len]; buy[0] = -prices[0]; buy[1] = Math.max(-prices[0], -prices[1]); sell[0] = 0; sell[1] = Math.max(0, prices[1]-prices[0]); for(int i = 2; i < len; i++) { buy[i] = Math.max(buy[i-1], sell[i-2]-prices[i]); sell[i] = Math.max(sell[i-1], buy[i-1]+prices[i]); } return sell[len-1]; }
阅读全文
0 0
- 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
- [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
- 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
- LeetCode: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
- 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
- CenterOS-6.5 64位下载
- android zip 递归打包压缩,解压
- Android线程池详解
- Bootstrap Table总结
- React Router页面传递参数-1
- Leetcode 309. Best Time to Buy and Sell Stock with Cooldown
- 特征直方图的特征参数
- https://sqlwhisper.wordpress.com/2013/03/24/stuff-and-for-xml-path-for-string-concatenation/
- 反射再学习
- JSP&Servlet中request.getParameter() 和request.getAttribute() 区别
- 静态成员函数
- 深度学习笔记空间金字塔池化阅读笔记Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- LeetCode 383:Ransom Note (c++)
- U盘修复工具哪个好?7款U盘低格工具详解