leetcode

121.买卖股票的最佳时机

力扣链接

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0, minprice = prices[0];
        for (int i : prices){
            res = std::max(res, i - minprice);
            minprice = std::min(minprice, i);
        }
        return res;
    }
};

超时写法1

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0;
        for (int i = 0; i < prices.size(); i++){
            for (int j = i + 1; j < prices.size(); j++){
                if (prices[i] <= prices[j]) res = std::max(res, prices[j] - prices[i]); 
            }
        }
        return res;
    }
};

超时写法2

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int slow = 0, fast = 1, res = 0;
        for (; slow < prices.size() - 1; slow++){
            while (fast < prices.size()){
                if (prices[slow] < prices[fast]) res = std::max(res, prices[fast] - prices[slow]); 
                fast++;
            }
            fast = slow + 1;
        }
        return res;
    }
};