| 12345678910111213141516171819202122232425 | 
							- package main
 
- func maxProduct(nums []int) int {
 
- 	length := len(nums)
 
- 	if length == 0 {
 
- 		return 0
 
- 	}
 
- 	globalMax := nums[0]
 
- 	min, max := nums[0], nums[0]
 
- 	for i := 1; i < length; i++ {
 
- 		// Negtive num makes bigger num smaller & smaller num bigger
 
- 		if nums[i] < 0 {
 
- 			min, max = max, min
 
- 		}
 
- 		min = minInt(nums[i], nums[i]*min)
 
- 		max = maxInt(nums[i], nums[i]*max)
 
- 		globalMax = maxInt(max, globalMax)
 
- 	}
 
- 	return globalMax
 
- }
 
- // func main() {
 
- // 	println(maxProduct([]int{ // The answer: 144
 
- // 		2, -1, 6, 2, 1, -6, 0, 8, 7}))
 
- // }
 
 
  |