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}))
- // }
|