典型的DP问题,第n个状态是max(第n-1个状态,第n个元素-min(n-1))。
public:
int maxProfit(vector<int>& prices) {
if(prices.size() <= 1) return 0;
int min = prices[0], max = 0, m = 0;
for(size_t i = 1; i < prices.size(); i++){
m = prices[i] - min;
if(m >= 0) max = max > m? max:m;
min = prices[i] > min?min:prices[i];
}
return max;
}
};