[LeetCode] 0152. 최대 제품 하위 배열

1

Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크

중간

 


정수 배열이 주어지면 숫자, 가장 큰 곱이 있는 하위 배열을 찾고 그 곱을 반환합니다.

테스트 케이스는 답변이 다음에 적합하도록 생성됩니다. 32비트정수.

예시 1:

입력: 숫자 = [2,3,-2,4]
산출: 6
설명: [2,3]에는 제품 6이 가장 큽니다.

예 2:

입력: 숫자 = [-2,0,-1]
산출: 0
설명: [-2,-1]은 하위 배열이 아니기 때문에 결과는 2가 될 수 없습니다.

제약:

  • 1 <= 숫자.길이 <= 2*10 4
  • -10 <= 숫자[i] <= 10
  • 하위 배열의 곱 숫자 ~이다 보장 에 맞게 32비트 정수.

파이썬

				
					# 시간 복잡도: O(n) # 공간 복잡도: O(1) import List 클래스 입력 시 솔루션: def maxProduct(self, nums: List[int]) -> int: if len(nums) == 0: return 0 maxSoFar, minSoFar, 결과 = nums[0], nums[0], nums[0] for i in range(1, len(nums)): curr = nums[i] tempMax = max(curr, max(maxSoFar * curr) , minSoFar * curr)) minSoFar = min(curr, min(maxSoFar * curr, minSoFar * curr)) maxSoFar = tempMax 결과 = max(result, maxSoFar) 반환 결과 nums = [-2, 0, -1] print(해결책 ().maxProduct(nums))
				
			
ko_KR한국어