Best Time to Buy and Sell Stock III
2016-01-15 09:35
423 查看
Best Time to Buy and Sell Stock III
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 at most two transactions.
Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).思路
以为可以借用 只买一次的那个代码,但是怎么也不能得到完全正确的答案,所以还是有问题看了别人的代码
用两个同样大小的数组,分别记录在当前之前最小的价格,和当前最大的价格
然后思路就是,在当前位置交易,之前的最大值+之后的最大
代码
class Solution { public: int maxProfit(vector<int>& prices) { int n = prices.size(); if(n == 0) return 0; vector<int> min_p(n), max_p(n); min_p[0] = prices[0]; for(int i = 1; i < n; i ++) min_p[i] = min(min_p[i-1], prices[i]); max_p[n-1] = prices[n-1]; for(int i = n - 2; i >= 0; i --) max_p[i] = max(max_p[i+1], prices[i]); int ret = 0; int tmp = 0; for(int i = 0; i < n; i ++){ tmp = max(tmp, prices[i] - min_p[i]); ret = max(ret, tmp + max_p[i] - prices[i]); } return ret; } };
相关文章推荐
- JavaScript回顾--13_dom简介
- SpringMVC中用@ParamVariable传递的参数包含斜杠(/)时,匹配不了报404错误的解决方案
- css中数值计算
- 蛇
- PHP连接SQL Server(sqlsrv)
- 数据存储之第三方FMDB优化
- Eclipse常用快捷键
- 程序员常去的14个顶级开发社区
- Android入门- 关于Activity下的onCreate方法的参数详解
- Git(4)分支
- Java Web学习总结(1)——JavaWeb开发入门
- Java Web学习总结(1)——JavaWeb开发入门
- 【HDU】 3460 Ancient Printer
- Java Web学习总结(1)——JavaWeb开发入门
- Linux---Samba安装
- 最快让你上手ReactiveCocoa之基础篇
- 如何通过配置apache,让Wap主域名URL访问到子域名服务
- LibJpeg 使用说明(英文)
- 所有的UITextField都有字符串,UIButton按钮变颜色
- ajax异步核心内容示例:实现页面中异步验证账号是否已存在