您的位置:首页 > 其它

leetcode121——Best Time to Buy and Sell Stock

2018-03-26 21:49 316 查看
题目大意:给出股票在i天的价格数组prices[i],一个人手里最多持有一只股票,也就是他再买入之前必须卖出,问这个人的最大收益是多少
分析:dp。简单的二重循环会超时,所以我们考虑遍历一次就能求解的方法,在遍历过程中用min记录股票的最小值,不断更新profit收益来记录卖出时的最大值。
代码:
class Solution {
public:
int maxProfit(vector<int>& prices) {
                if(prices.size() <= 1) return 0;
int min = prices[0];
int profit = 0;
for (int i = 1;i < prices.size();i++) {
if (min > prices[i]) {
min = prices[i];
}
else {
if (profit < prices[i] - min) {
profit = prices[i] - min;
}
}
}
return profit;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: