''' 解题思路: 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