【LeetCode】121. Best Time to Buy and Sell Stock 解题小结

题目:

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

这题如果用嵌套循环的话貌似超时了。用一次循环的思路,首先找到当前最便宜价格,然后在找到更便宜价格前先进行比较是否有Max Profit。然后继续找。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int buyPrice = INT_MAX, maxPri = 0;
        for (auto price: prices){
            if (price < buyPrice)
                buyPrice = price;
            if ((price - buyPrice) > maxPri)
                maxPri = price - buyPrice;
        }
        return maxPri;
    }
};

 

posted on 2016-08-26 17:49  医生工程师  阅读(110)  评论(0编辑  收藏  举报

导航