Suppose we have an integer array called nums, we have to find the contiguous subarray within an array (containing at least one number) which has the largest product. So if the array is [2,3,-2,4], the output will be 6, as contiguous subarray [2,3] has max product.
To solve this, we will follow these steps −
Let us see the following implementation to get better understanding −
class Solution(object): def maxProduct(self, nums): max_list =  * len(nums) min_list =  * len(nums) max_list = nums min_list = nums for i in range(1,len(nums)): max_list[i] = max(max(max_list[i-1]*nums[i],min_list[i-1]*nums[i]),nums[i]) min_list[i] = min(min(min_list[i-1]*nums[i],nums[i]),max_list[i-1]*nums[i]) return max(max_list) ob1 = Solution() print(ob1.maxProduct([2,3,-2,4,-5,-6,2]))