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.
A subarray is a contiguous subsequence of the array.
Test Cases
Input:
(int[]) nums = [2,3,-2,4]
Output:
(int) 6
Explanation:
[2,3] has the largest product 6.
Solution
class Solution {
public int maxProduct(int[] A) {
int n = A.length, res = A[0], l = 0, r = 0;
for (int i = 0; i < n; i++) {
l = (l == 0 ? 1 : l) * A[i];
r = (r == 0 ? 1 : r) * A[n - 1 - i];
res = Math.max(res, Math.max(l, r));
}
return res;
}
}