Skip to content

LeetCode 121. 买卖股票的最佳时机 简单

我的解题

这是我参照 labuladong LeetCode 股票问题的一种通用解法 中,写出的答案。

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int maxProfit(vector<int> &prices)
    {
        int res = 0; // 最终结果,即最大利润
        int min_buy_price = prices[0]; // 最小买入价格
        for (size_t i = 1; i < prices.size(); ++i) // 卖出的时机
        {
            min_buy_price = min(prices[i], min_buy_price); // 更新最小买价
            res = max(res, prices[i] - min_buy_price);
        }
        return res;
    }
};

int main()
{
    vector<int> n { 1, 2, 5 };
    Solution s;
    cout << s.maxProfit(n) << endl;

    n = { 7, 1, 5, 3, 6, 4 };
    cout << s.maxProfit(n) << endl;
}
// g++ test.cpp --std=c++11 -pedantic -Wall -Wextra

TODO

C++ 利用哨兵👨‍✈️,维护一个单调栈📈(图解,直观掌握) 中,给出了一种使用单调栈的解法。