利用左右前缀数组,对数据进行预处理,得到 每个值左侧和右侧的乘积,则除自身外的乘积为 左侧乘积 * 右侧乘积
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型一维数组
#
class Solution:
def timesExceptSelf(self , nums: List[int]) -> List[int]:
# write code here
l, r = [1 for _ in range(len(nums))], [1 for _ in range(len(nums))]
for i in range(1, len(nums)):
l[i] = l[i - 1] * nums[i - 1]
for i in range(len(nums) - 2, -1, -1):
r[i] = r[i + 1] * nums[i + 1]
res = [0 for _ in range(len(nums))]
for i in range(len(nums)):
res[i] = l[i] * r[i]
return res