Back to Practice Dashboard
Top 150 InterviewHard

Maximum Product Subarray

Learn how to solve the 'Maximum Product Subarray' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Hard

Given an integer array nums, find a contiguous non-empty subarray within the array that has the largest product, and return the product.

The test cases are generated so that the answer will fit in a 32-bit integer.

Write a function maxProduct(nums: List[int]) -> int.

Constraints
  • 1 <= len(nums) <= 2 * 10^4
  • -10 <= nums[i] <= 10
  • The product of any prefix or suffix of nums fits in a 32-bit integer

Examples

Example 1
Input
nums = [2,3,-2,4]
Output
6
Explanation

[2,3] has the largest product 6.

Example 2
Input
nums = [-2,0,-1]
Output
0
Explanation

The result cannot be larger than 0 because of the negative numbers separated by 0.

Need a Hint?
Define subproblem states, establish the recurrence relation, and use memoization (top-down) or tabulation (bottom-up).
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor