假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
思路:一个遍历,挨次寻找最小值,若当前股票价格大于最小值,则求利润,并对当前利润进行保存,后续再进行 如上操作。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sz = prices.size();
if(sz <= 1)
return 0;
int _min = prices[0];//最小值
int profit = 0;//利润
for(int i = 1; i < sz; ++i)
{
_min = min(_min, prices[i]);//最小值
profit = max(profit, prices[i]- _min);//求利润的最大值
}
return profit;
}
};