https://leetcode.cn/problems/product-of-array-except-self/?envType=study-plan-v2&envId=top-interview-150
go
func productExceptSelf(nums []int) []int { if len(nums) <= 1 { return nums } ans := make([]int, len(nums)) for h := range ans { ans[h] = 1 } i := 1 j := len(nums) - 2 for ; i < len(nums); i++ { ans[i] = ans[i-1] * nums[i-1] } sum := 1 for ; j >= 0; j-- { sum *= nums[j+1] ans[j] *= sum } return ans }