问题

假设你有一个数组,其中的第i个元素表示一只股票在第i天的价格。

如果只允许你完成一次交易(即买入并卖出股票一次),设计一个找出最大利润的算法。

初始思路

和122一样,基于买入与卖出股票的最佳时机III中的分析很容易得出答案。由于只允许进行一次交易,本题更加简单,我们只需按III中的方法不断更新最大利润即可。

 class Solution {
public:
int maxProfit(std::vector<int> &prices)
{
return CaculateProfit(prices).profit;
} private:
struct Profit
{
Profit() : profit(), buyPrice(-), buyDay(), sellDay()
{
} int profit;
int buyPrice;
int buyDay;
int sellDay;
}; Profit CaculateProfit(std::vector<int> &prices)
{
Profit currentProfit;
Profit maxProfit; for(int day = ; day < prices.size(); ++day)
{
if(currentProfit.buyPrice == -)
{
currentProfit.buyPrice = prices[day];
currentProfit.buyDay = day;
continue;
} currentProfit.profit = prices[day] - currentProfit.buyPrice;
currentProfit.sellDay = day; if(currentProfit.profit < )
{
currentProfit.buyPrice = prices[day];
currentProfit.buyDay = day;
currentProfit.profit = ;
} if(currentProfit.profit > maxProfit.profit)
{
maxProfit = currentProfit;
}
} return maxProfit;
}
};

maxProfit

最新文章

  1. frame和bounds
  2. [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger
  3. sql server 2008笔记
  4. BZOJ2400: Spoj 839 Optimal Marks
  5. Linux下文件的三个时间(Atime,Mtime,Ctime)
  6. 页面有什么隐藏bug:字体,图片
  7. 在Ubuntu12.0至14.04版本之间用Apache搭建网站运行环境
  8. CXGrid TcxButtonEdit 信息获取 TcxButtonEditProperties取得TcxGridDBTableView
  9. java json转换(二)
  10. Pycharm 远程调试
  11. xshell连不上虚拟机
  12. ACM:油田(Oil Deposits,UVa 572)
  13. ActiveMQ 的连接和会话
  14. 解决CentOS7-python-pip安装失败
  15. eclipse代码提示javadoc背景为黑色框的解决办法
  16. Alpha版本事后诸葛亮
  17. MongoDB学习笔记(7)--- 条件操作符
  18. 41 - 数据库-pymysql41 - 数据库-pymysql-DBUtils
  19. Explorer : 发布一个key-value存储系统,带有客户端和服务器端
  20. 实例讲解Nginx下的rewrite规则(转)

热门文章

  1. oschina服务器软件
  2. HDU_1426——数独问题,DFS
  3. codeforces 277.5 div2 F:组合计数类dp
  4. [LeetCode] Search in Rotated Sorted Array I (33) &amp;&amp; II (81) 解题思路
  5. Xcode Build Setting Reference
  6. WIN7局域网文件共享设置方法
  7. ajax返回json数组遍历添加到html
  8. eclipse format的时候如何让@param后不换行
  9. Android两种 旋转Bitmap方法
  10. (3)选择元素——(15)总结(Summary)