26 lines
387 B
Go
26 lines
387 B
Go
package product_of_array_except_self
|
|
|
|
func ProductExceptSelf(nums []int) []int {
|
|
result := []int{}
|
|
|
|
for range nums {
|
|
result = append(result, 1)
|
|
}
|
|
|
|
lower_sum := 1
|
|
|
|
for i := range len(nums) {
|
|
result[i] *= lower_sum
|
|
lower_sum *= nums[i]
|
|
}
|
|
|
|
upper_sum := 1
|
|
|
|
for i := range len(nums) {
|
|
result[len(nums)-1-i] *= upper_sum
|
|
upper_sum *= nums[len(nums)-1-i]
|
|
}
|
|
|
|
return result
|
|
}
|