使用两个辅助数组,一个保存某个元素左边所有元素的乘积,一个保存某个元素右边所有元素的乘积。最终根据这两个辅助数组来得到最终结果数组。
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
left = []
right = []
left.append(nums[0])
right.append(nums[-1])
ll = len(nums)
for i in range(1, len(nums)):
left.append(left[i - 1] * nums[i])
right.append(right[i - 1] * nums[ll - i - 1])
right.reverse()
res = []
res.append(right[1])
for i in range(1, ll - 1):
res.append(left[i - 1] * right[i + 1])
res.append(left[ll - 2])
return res