股票买卖之多次交易最大利润
2014-06-14 17:14
381 查看
这道题是之前的变形,可以多次买卖,初看这道题,好像要复杂些,其实就是-1 1序列选择问题,只不过不是全部选。
出现,我想到了DP算法,类似矩阵链从中间断开,
连递推方程都写出来了:
c(i,j)=max (i<k<j) c(i,k)+c(k+1,j) i<j+2,
c(i,i)=0 i=1....n
c(i,i+1)=a(i+1)-a(i) i=1...n-1
但是当我再分析的时候,发现其实也是和increment有关,然后把每个increment都写出来,发现就是把这些正的increment加起来,严谨的数学证明还没有去尝试,感觉上是这样的。这样的话代码就太简单了
这里max会自动从负值和0中选个较大的。有时候就是会出乎意料,不需要那些高端工具就能求解了。
出现,我想到了DP算法,类似矩阵链从中间断开,
连递推方程都写出来了:
c(i,j)=max (i<k<j) c(i,k)+c(k+1,j) i<j+2,
c(i,i)=0 i=1....n
c(i,i+1)=a(i+1)-a(i) i=1...n-1
但是当我再分析的时候,发现其实也是和increment有关,然后把每个increment都写出来,发现就是把这些正的increment加起来,严谨的数学证明还没有去尝试,感觉上是这样的。这样的话代码就太简单了
int maxProfit(vector<int> &prices) { if(prices.size()<=1)return 0; int max=0,increment; for(int i=1;i<prices.size();i++) { increment=prices.at(i)-prices.at(i-1); if(increment>0) max+=increment; } return max; }
这里max会自动从负值和0中选个较大的。有时候就是会出乎意料,不需要那些高端工具就能求解了。
相关文章推荐
- leetcode_122. Best Time to Buy and Sell Stock II 多次买卖股票,求交易的最大利润
- 每天一道LeetCode-----买卖商品问题,计算最大利润,分别有一次交易,两次交易,多次交易的情况
- (LeetCode)Best Time to Buy and Sell Stock -- 求股票买卖的最大利润
- 说你有一个数组,其中第i个元素是第i天给定股票的价格。设计一个算法来找到最大的利润,最多可以完成两个交易。
- 假如一个数组存储了一个股票,在一天交易窗口内各时间点的股票价格(正整数),只允许一次买入和一次卖出,请提供一个算法,计算出通过买入和卖出可以得到的最大利润
- 假如一个数组存储了一个股票,在一天交易窗口内各时间点的股票价格(正整数),只允许一次买入和一次卖出,请提供一个算法,计算出通过买入和卖出可以得到的最大利润
- LeetCode - 股票交易的最大利润
- 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。
- [LeetCode] 714. Best Time to Buy and Sell Stock with Transaction Fee 买卖股票的最佳时间有交易费
- 找出买卖股票的最大收益及其时间
- LeetCode 121. Best Time to Buy and Sell Stock--股票买入后再卖出,求最大收益,最多交易一次
- LeetCode-714:Best Time to Buy and Sell Stock with Transaction Fee (带有抛售费用的股票最大利润) -- medium
- 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<
- Best Time to Buy and Sell Stock 股票交易最大收益
- 算法-股票交易最大收益
- 最大数字序列和问题,买卖股票问题,以及最长公共字串问题
- [leetcode 121] Best Time to Buy and Sell Stock---只能买卖股票一次的最大收益
- Leetcode#122. Best Time to Buy and Sell Stock II(股票多次买卖的最佳时间--贪心)
- LeetCode-122:Best Time to Buy and Sell Stock II (多次股票交易最大利润)
- 求股票的最大利润