使用兩個輔助數組,一個保存某個元素左邊所有元素的乘積,一個保存某個元素右邊所有元素的乘積。最終根據這兩個輔助數組來得到最終結果數組。
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