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))