[LeetCode 121] - 买入与卖出股票的最佳时机(Best Time to Buy and Sell Stock)
2024-08-25 13:10:59
问题
假设你有一个数组,其中的第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
最新文章
- frame和bounds
- [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger
- sql server 2008笔记
- BZOJ2400: Spoj 839 Optimal Marks
- Linux下文件的三个时间(Atime,Mtime,Ctime)
- 页面有什么隐藏bug:字体,图片
- 在Ubuntu12.0至14.04版本之间用Apache搭建网站运行环境
- CXGrid TcxButtonEdit 信息获取 TcxButtonEditProperties取得TcxGridDBTableView
- java json转换(二)
- Pycharm 远程调试
- xshell连不上虚拟机
- ACM:油田(Oil Deposits,UVa 572)
- ActiveMQ 的连接和会话
- 解决CentOS7-python-pip安装失败
- eclipse代码提示javadoc背景为黑色框的解决办法
- Alpha版本事后诸葛亮
- MongoDB学习笔记(7)--- 条件操作符
- 41 - 数据库-pymysql41 - 数据库-pymysql-DBUtils
- Explorer : 发布一个key-value存储系统,带有客户端和服务器端
- 实例讲解Nginx下的rewrite规则(转)
热门文章
- oschina服务器软件
- HDU_1426——数独问题,DFS
- codeforces 277.5 div2 F:组合计数类dp
- [LeetCode] Search in Rotated Sorted Array I (33) &;&; II (81) 解题思路
- Xcode Build Setting Reference
- WIN7局域网文件共享设置方法
- ajax返回json数组遍历添加到html
- eclipse format的时候如何让@param后不换行
- Android两种 旋转Bitmap方法
- (3)选择元素——(15)总结(Summary)