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 product of any subarray of `nums` is guaranteed to fit in a **32-bit** integer.
Example 1
Input:nums = [2,3,-2,4]
Output:6
Explanation:The subarray [2,3] has the largest product 6.
Example 2
Input:nums = [-2,0,-1]
Output:0
Explanation:The result cannot be 2 because [-2,-1] is not contiguous.
Example 3
Input:nums = [-2,3,-4]
Output:24
Explanation:The whole array: (-2) x 3 x (-4) = 24 - two negatives make a positive.
Constraints
- 1 <= nums.length <= 2 * 10^4
- -10 <= nums[i] <= 10
- The product of any subarray of nums is guaranteed to fit in a 32-bit integer.