diff --git a/solution/0152.Maximum Product Subarray/Solution.py b/solution/0152.Maximum Product Subarray/Solution.py new file mode 100644 index 0000000000000..9c56edf2710b2 --- /dev/null +++ b/solution/0152.Maximum Product Subarray/Solution.py @@ -0,0 +1,21 @@ + +# Beats 88% in python. +class Solution(object): + def maxProduct(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + if not nums: + return 0 + localMin = localMax = maxi = nums[0] + + for i in range(1, len(nums)): + if nums[i] < 0: + localMin, localMax = localMax, localMin + + localMin = min(nums[i], localMin * nums[i]) + localMax = max(nums[i], localMax * nums[i]) + maxi = max(localMax, maxi) + + return maxi \ No newline at end of file