Leetcode/NeetCode

[SlidingWindow][Easy] 121. Best Time to Buy and Sell Stock

자전거통학 2024. 7. 9. 21:58

https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/

 

주식 가격이 주어진다. 

이때 어느 하루에 사고, 어느 다른 하루에 판다면, 이 수익의 최대값을 구하라.

 

파는 날은 반드시 사는 날과 다른 이후의 날이어야 한다. 

사는 날은 최대한 싸면 큰 차익의 결과가 기대될 것이다. 

따라서 최소값에서 사고, 알수 없는 모든 값들에 대해 차(수익)의 최대값을 구한다.

 

코드 

더보기
int maxProfit(vector<int>& prices) 
{
    if (prices.size() <= 1)
        return 0;

    int maxProfit = 0;
    int minStock = prices[0];
    for (int q = 1; q < prices.size(); ++q)
    {
        maxProfit = max(maxProfit, prices[q] - minStock);
        minStock = min(minStock, prices[q]);
    }
    return maxProfit;
}

 

 

결과