Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
정수 배열이 제공됩니다. 물가
어디 가격[i]
은 주어진 주식의 가격이다. 나는 일
낮.
매일 주식을 매수 및/또는 매도하기로 결정할 수 있습니다. 많아야 하나 그러나 언제든지 주식을 매수한 후 즉시 매도할 수 있습니다. 같은 날.
찾아 돌려보내기 그만큼 최고 얻을 수 있는 이익.
예시 1:
입력: 가격 = [7,1,5,3,6,4] 산출: 7 설명: 2일째 매수(가격 = 1), 3일째 매도(가격 = 5), 이익 = 5-1 = 4. 그런 다음 4일째 매수(가격 = 3), 5일째 매도(가격 = 6), 이익 = 6-3 = 3. 총 이익은 4 + 3 = 7입니다.
예 2:
입력: 가격 = [1,2,3,4,5] 산출: 4 설명: 1일째 매수(가격 = 1), 5일째 매도(가격 = 5), 이익 = 5-1 = 4. 총 이익은 4입니다.
예시 3:
입력: 가격 = [7,6,4,3,1] 산출: 0 설명: 플러스 수익을 낼 수 있는 방법은 없으므로, 우리는 최대 수익 0을 달성하기 위해 주식을 사지 않습니다.
제약:
1 <= 가격.길이 <= 3 * 10 4
0 <= 가격[i] <= 10 4
파이썬
# 시간 복잡도: O(n) # 공간 복잡도: O(1) 입력 가져오기 목록 클래스 솔루션: def maxProfit(self, 가격: List[int]) -> int: 이익 = 0 for i in range(1, len (가격)): 가격[i] > 가격[i-1]인 경우: 이익 += 가격[i] - 가격[i-1] 반환 이익 가격 = [7, 1, 5, 3, 6, 4] 인쇄 (솔루션().maxProfit(가격))