题目链接:https://leetcode.cn/problems/product-of-array-except-self/
难度:中等
描述:
给你一个整数数组 nums
,返回 数组 _answer_
,其中 _answer[i]_
等于 _nums_
中除 _nums[i]_
之外其余各元素的乘积 。
题目数据 保证 数组 nums
之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n) 时间复杂度内完成此题。
题解
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
n = len(nums)
ret = [1] * n
# r[i] = product(r[:i]) + product(r[i+1:])
k = 1
for i in range(n):
ret[i] *= k
k *= nums[i]
k = 1
for i in range(n-1, -1, -1):
ret[i] *= k
k *= nums[i]
return ret