Leetcode: 주식을 사고 팔기 가장 좋은 시기 II Python 솔루션 설명 포함

Link leetcode 질문.

전체 솔루션



def maxProfit(self, prices: List[int]) -> int:
    if not prices or len(prices) is 1:
        return 0
    profit = 0
    for i in range(1, len(prices)):
        if prices[i] > prices[i - 1]
    return profit

엣지 케이스



if not prices or len(prices) is 1:
    return 0

입력에 무언가가 있는지 확인해야 합니다. 입력에 아무것도 없거나 항목이 하나만 있으면 이익을 얻을 수 없습니다. 따라서 0을 반환합니다.

결과 추적


profit = 0이것은 우리가 마지막에 반환하고자 하는 것을 추적하는 곳에서 꽤 자명해야 합니다.

입력을 통해 진행


for i in range(1, len(prices)):이 부분은 여러 가지 방법으로 수행할 수 있지만 이 문제를 해결한 방법은 두 번째 인덱스부터 입력 배열을 반복하여 현재와 이전 인덱스를 비교할 수 있도록 하는 것이었습니다.
현재를 이전과 비교하고 배열의 시작 부분에서 시작하면 오류가 발생합니다.

if prices[i] > prices[i - 1]:
    profit += prices[i] - prices[i - 1]

따라서 현재 가격이 이전 주식보다 높으면 원하는 만큼의 이익을 얻을 수 있다는 의미입니다. 그래서 우리는 profit 현재 주가와 그 이전 주가의 차이를 더할 것입니다.

주식 가격이 이전 주가보다 낮으면 수익을 내지 않으므로 입력 배열을 계속 반복합니다.

마지막으로 결과 이익을 반환할 수 있습니다.

좋은 웹페이지 즐겨찾기