>  기사  >  백엔드 개발  >  LeetCode 크래킹 . 주식을 사고 파는 가장 좋은 시기 II

LeetCode 크래킹 . 주식을 사고 파는 가장 좋은 시기 II

WBOY
WBOY원래의
2024-08-05 21:42:12304검색

LeetCode 기술을 연마하기 위한 지속적인 탐구 과정에서 저는 "주식 매매에 가장 적합한 시기 II" 문제를 해결했습니다. 이 챌린지는 고전적인 "주식 매수 및 매도 최적기 II" 문제(LeetCode 121)의 후속 조치이지만 중요한 차이점이 있습니다. *여러 거래를 실행하여 수익을 극대화할 수 있습니다.
*

시각적 접근 방식

코드를 살펴보기 전에 화이트보드에 문제를 시각화하는 것이 매우 도움이 된다는 것을 알았습니다. 이를 통해 문제를 더 작고 관리하기 쉬운 단계로 나눌 수 있었습니다.

Cracking the LeetCode . Best Time to Buy and Sell Stock II

탐욕스러운 접근 방식

무제한 거래가 가능한 유연성을 고려하면 탐욕스러운 접근 방식이 유망해 보였습니다. 핵심 아이디어는 간단합니다. 주식 가격이 전날에 비해 상승할 때마다 우리는 이를 잠재적인 수익 기회로 간주합니다. 이러한 가격 차이를 모두 합산하여 효과적으로 최대 이익을 계산합니다.

파이썬 구현

이 그리디 전략을 구현하는 Python 코드는 다음과 같습니다.

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        profit = 0

        for i in range(1, len(prices)):
            if prices[i] > prices[i-1]:
                profit+=prices[i] - prices[i-1]

        return profit

자바스크립트 구현

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    var profit = 0;
    for (var i = 1; i < prices.length; i++)
    {
    if(prices[i] > prices[i-1])
    {
        profit += Number(prices[i] - prices[i-1])
    }
    }

    return profit
};

시간과 공간의 복잡성

  • 이 접근 방식의 시간 복잡도는 O(N)입니다. 여기서 N은 배열의 길이입니다.
  • 장소에서 비교했을 때 공간 복잡도는 N(1)입니다.

위 내용은 LeetCode 크래킹 . 주식을 사고 파는 가장 좋은 시기 II의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.