解题思路
本题引入了两个数组,分别储存位置元素的前缀元素之积和后缀元素之积;该程序的时间复杂度为O(n)
。
代码
class Solution(object): def productExceptSelf(self, nums): """ :type nums: List[int] :rtype: List[int] """ list1,list2,list3 = [],[],[] long = len(nums) #数组长度 #计算前缀 for i in range(long): if i == 0: list1.append(nums[i]) else: list1.append(list1[i-1] * nums[i]) #计算后缀 for i in range(long-1,-1,-1): if i == long - 1: list2.append(nums[i]) else: list2.append(list2[long-i-2] * nums[i]) for i in range(long): if i == 0: list3.append(list2[long-2-i]) elif i == long-1: list3.append(list1[i-1]) elif 0<i<long-1: list3.append(list1[i-1]*list2[long-2-i]) return list3