思路
从左到右遍历一趟,记录每个位置左边的乘积(首位为1)
从右到左走一趟,将上一步的结果累乘每一位右边的乘积
class Solution(object):
def productExceptSelf(self, nums):
if not nums:
return []
output = [1] * len(nums)
k = 1
for i in range(len(nums)):
output[i] = k
k *= nums[i] #更新k
k = 1
for i in range(len(nums)-1,-1,-1):
output[i] *= k #累乘
k *= nums[i] #更新k
return output