1、从左至右遍历,当前区间的最大利润是前一个区间的最大利润或当前股票价值减前一个区间最小值,取高者。每一个区间都有一个利润与最小值,依次比较替换即可。
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(prices.size() == 0 || prices.size() == 1)
return 0;
int profit = 0;
int minPrice = prices[0];
for(int i = 1; i < prices.size(); i++){
profit = max(profit, prices[i]-minPrice);
minPrice = min(minPrice, prices[i]);
}
return profit;
}
};