55561bc4创建于 2022年12月27日历史提交
func maxProduct(nums []int) int {
    res, curMin, curMax := nums[0], 1, 1
    
    for i := 0; i < len(nums); i++ {
        temp := curMax * nums[i]
        curMax = max(max(nums[i] * curMax, nums[i] * curMin), nums[i])
        curMin = min(min(temp, nums[i] * curMin), nums[i])
        res = max(res, curMax)
    }
    return res
}

// Golang does not have a built-in max for integers
func max(a int, b int) int {
    if (a > b) {
        return a
    }
    return b
}

// Golang does not have a built-in min for integers
func min(a int, b int) int {
    if (a < b) {
        return a
    }
    return b
}