Advertisement
goodwish

191. Maximum Product Subarray

Nov 14th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.59 KB | None | 0 0
  1. 分正负数两种情况, 计算最大,最小乘积.
  2. init: f_max[0] = f_min[0] = A[0]
  3.  
  4. class Solution:
  5.     def maxProduct(self, A):
  6.         # init
  7.         pre_max = pre_min = 1
  8.         ans = -float("inf")
  9.  
  10.         for v in A:
  11.             if v < 0:
  12.                 max_val = max(v, pre_min * v)
  13.                 min_val = min(v, pre_max * v)
  14.             else:
  15.                 max_val = max(v, pre_max * v)
  16.                 min_val = min(v, pre_min * v)
  17.             ans = max(ans, max_val)
  18.             pre_max = max_val
  19.             pre_min = min_val
  20.         return ans
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement