func productExceptSelf(nums []int) []int {
length:=len(nums)
left,right:=make([]int,length),make([]int,length)
left[0]=1
right[length-1]=1
for i:=length-2;i>=0;i--{
right[i]=right[i+1]*nums[i+1]
}
res:=make([]int,length)
for i := 0; i < length; i++ {
if i > 0 {
// 求结果的同时计算前缀乘积
left[i] = left[i-1] * nums[i-1]
}
res[i] = left[i] * right[i]
}
return res
}