除自身以外数组的乘积
1.思路
分别创建两个列表用来记录当前元素的前面元素的成绩与后面元素的成绩,更新这两个列表,最后用一个循环来更新除自身以外数组的乘积的列表即可。
2.解题方法
见代码
3.复杂度
时间复杂度:O(n)
空间复杂度:O(n)
4.Code
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
length = len(nums)
prefix_product = [0] * length
suffix_product= [0] * length
prefix_product[0] = 1
suffix_product[length-1] = 1
for i in range(1,length):
prefix_product[i] = prefix_product[i-1] * nums[i-1]
for j in range(length-2,-1,-1):
suffix_product[j] = suffix_product[j+1] * nums[j+1]
productExceptSelf_list = [0] * length
for k in range(length):
productExceptSelf_list[k] = prefix_product[k] * suffix_product[k]
return productExceptSelf_list