题目描述
假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。
你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。
你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。
示例1
输入
[1,4,2]
输出
3
示例2
输入
[2,4,1]
输出
2
题目分析:
分析题目可知,首先,必须先买入,其次卖出的值必须大于买入,并且相差越大越好,这个相差的值就是最大收益。
代码如下:
1 int maxProfit(vector<int>& prices) { 2 int min = prices[0]; 3 int maxProfile = 0; 4 for(int j = 1;j < prices.size();++j) 5 { 6 if(prices[j] < min) 7 min = prices[j]; 8 else 9 maxProfile = max(maxProfile , prices[j] - min); 10 } 11 return maxProfile; 12 }