除自身以外数组的乘积
题目链接: https://leetcode.cn/problems/product-of-array-except-self
解题方法:
分别计算每个元素的前缀乘积以及后缀乘积,再将每个数的前缀乘积与后缀乘积相乘
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
}
复杂度分析:
时间复杂度: ,为中元素的个数
空间复杂度:
最后更新于
这有帮助吗?