题解
func productExceptSelf(nums []int) []int {
var result = make([]int, len(nums))
result[0] = 1
for i := 1; i < len(nums); i++ {
result[i] = result[i-1] * nums[i-1]
}
var post = 1
for i := len(nums) - 2; i >= 0; i-- {
post *= nums[i+1]
result[i] *= post
}
return result
}
要点
- 先计算每位的前缀乘积,然后再从后往前遍历数据,乘以每一位的后缀乘积。