'''
解题思路:
1、要同时记住每次乘积之后的最大,最小(比较时要含自己)
2、最大最小要存个临时变量以防覆盖
#=============================================================================================
'''
#
#
# @param arr double浮点型一维数组
# @return double浮点型
#
class Solution:
def maxProduct(self , arr ):
# write code here
#print(arr)
n = len(arr)
t_max = arr[0]
t_min = arr[0]
maxprod = arr[0]
for i in range(1,n):
t_max2 = max(t_max*arr[i], arr[i], t_min*arr[i])
t_min2 = min(t_max*arr[i], arr[i], t_min*arr[i])
t_max = t_max2
t_min = t_min2
if t_max > maxprod:
maxprod = t_max
return maxprod