第5章 第11节 遍历

推荐给朋友

● 代码题:股票最大值。

参考回答:

最大利润无外乎就是计算后面的数字减去前面的数字得到的一个最大的差值;

求总体的最大差值,需要的数据:当前的最小值,当前的最大差值;遍历求解即可。

class Solution {
public:
int maxProfit(vector<int> prices)
{
int length = prices.size();
if (length < 2)
return 0;
int minPrice = prices[0];
int maxDiff = prices[1] - minPrice;
for (int i = 2; i < length; ++i)
{
if (prices[i - 1] < minPrice)
minPrice = prices[i - 1];
int currentDiff = prices[i] - minPrice;
if (currentDiff > maxDiff)
maxDiff = currentDiff;
}
return maxDiff;
}
};