最近脑袋是怎么了。。。。
这种题也能想个O(n^2)的解法来。。。
好2.。。。
O(n)就ok了。。。
最大收益就是。。。最大-最小,当然最大要在最小的右边(废话
那我们就动态更新最小点。。。
开始为0.。。
到达每个点计算一次收益。。。然后更新。。。
这样就能保证啦。。。
class Solution { public: int maxProfit(vector<int> &prices) { int size = prices.size(); if(size < 2) return 0; int curmin = prices[0]; int profit = 0; for(int i = 1 ; i < size ; i++){ profit = max(profit , (prices[i] - curmin)); curmin = min(curmin , prices[i]); } return profit; } };
by 1957