152. Maximum Product Subarray
Description
Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.
Constraints
Approach
Links
YouTube
Examples
Input: [2, 3, -2, 4]
Output: 6
Explanation: [2, 3] has the largest product 6.
Solutions
/**
* Time complexity : O(N^2) where N is the size of nums. Since we are
* checking every possible contiguous subarray following every element
* in nums we have quadratic runtime.
* Space complexity : O(1) since we are not consuming additional space other
* than two variables: result to hold the final result and accu to
* accumulate product of preceding contiguous subarrays.
*/
class Solution {
public int maxProduct(int[] nums) {
if (nums.length == 0) return 0;
int result = nums[0];
for (int i = 0; i < nums.length; i++) {
int accu = 1;
for (int j = i; j < nums.length; j++) {
accu *= nums[j];
result = Math.max(result, accu);
}
}
return result;
}
}Follow up
Last updated
Was this helpful?