1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[leetcode]Best Time to Buy and Sell Stock

Posted on 2014-01-06 21:22  1957  阅读(136)  评论(0编辑  收藏  举报

最近脑袋是怎么了。。。。

这种题也能想个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;
    }
};