Advertisement
DeepRest

Maximum Product Subarray

Dec 3rd, 2021
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.69 KB | None | 0 0
  1. #Using DP
  2. class Solution:
  3.     def maxProduct(self, nums: List[int]) -> int:
  4.        
  5.         minP = maxP = res = nums[0]
  6.  
  7.         for i in nums[1:]:
  8.             minP, maxP = min(maxP*i, minP*i, i), max(maxP*i, minP*i, i)
  9.             res = max(res, maxP)
  10.  
  11.         return res
  12.  
  13. """
  14. Prefix Suffix Product (2 passes)
  15. class Solution:
  16.    def maxProduct(self, nums: List[int]) -> int:
  17.        curr, res = 1, nums[0]
  18.        for i in nums:
  19.            curr *= i
  20.            res = max(res, curr)
  21.            if curr == 0: curr = 1
  22.        curr = 1
  23.        for i in reversed(nums):
  24.            curr *= i
  25.            res = max(res, curr)
  26.            if curr == 0: curr = 1
  27.        return res
  28. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement