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
}