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.