题目:给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。
例如:[-2.5,4,0,3,0.5,8,-1]其中子数组[3,0.5,8]的乘积最大,为12;
算法思想:创建新的double型变量:max,min,MAX。当数组记录到i位置时,此时max记录(arr[i],max*arr[i],min*arr[i])其中的最大值。
min记录(arr[i],max*arr[i],min*arr[i])中的最小值,记录最小值的目的是:当min为负数时且arr[i]为负数时,相乘若最大,则找到最大值并记录在max上。
tips:Math.max(a,b)是找a与b之间的最大值。