var IntMax =int(^uint(0)>>1)var IntMin =^IntMax
funcmaxProduct(nums []int)int{var max = IntMin
var tmpMin =1var tmpMax =1for i :=0; i <len(nums); i++{if nums[i]<0{
tmp := tmpMin
tmpMin = tmpMax
tmpMax = tmp
}
tmpMin =Min(tmpMin*nums[i], nums[i])
tmpMax =Max(tmpMax*nums[i], nums[i])
max =Max(max, tmpMax)}return max
}funcMax(a, b int)int{if a >= b {return a
}else{return b
}}funcMin(a, b int)int{if a >= b {return b
}else{return a
}}