Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 分正负数两种情况, 计算最大,最小乘积.
- init: f_max[0] = f_min[0] = A[0]
- class Solution:
- def maxProduct(self, A):
- # init
- pre_max = pre_min = 1
- ans = -float("inf")
- for v in A:
- if v < 0:
- max_val = max(v, pre_min * v)
- min_val = min(v, pre_max * v)
- else:
- max_val = max(v, pre_max * v)
- min_val = min(v, pre_min * v)
- ans = max(ans, max_val)
- pre_max = max_val
- pre_min = min_val
- return ans
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement