코테준비 - Best Time to Buy and Sell Stock II

정상화·2023년 2월 26일

LeetCode

목록 보기
119/222

Best Time to Buy and Sell Stock II

class Solution {
public:
    int maxProfit(vector<int> &prices) {
        int minVal = prices[0];

        int maxProfit = 0;
        for (int i = 1; i < prices.size(); i++) {
            if (((i + 1 != prices.size() && prices[i] > prices[i + 1])
                 || (i + 1 == prices.size()))
                && i - 1 >= 0 && prices[i] >= prices[i - 1]) {
                int delta = prices[i] - minVal;
                if (delta > 0) {
                    maxProfit += delta;
                    minVal = prices[i];
                }
            } else if (i + 1 != prices.size() && prices[i] < prices[i + 1]
                       && i - 1 >= 0 && prices[i] <= prices[i - 1]) {
                if (minVal - prices[i] > 0) {
                    minVal = prices[i];
                }
            }

        }
        return maxProfit <= 0 ? 0 : maxProfit;
    }
};
profile
백엔드 희망

0개의 댓글