leetcode打卡系列-3
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4]
输出: [24,12,8,6]
def func(nums):
left = []
right = []
output = []
left_value,right_value = 1,1
# 建两个列表,双向遍历
for i in range(0,len(nums)):
left_value = nums[i] * left_value
left.append(left_value)
for j in range(len(nums)-1,-1,-1):
right_value = nums[j] * right_value
right.append(right_value)
right = right[::-1]
output.append(right[1]) #添加第一个值
for k in range(1,len(nums)-1):
a = left[k-1] * right[k+1]
output.append(a)
output.append(left[-2]) #添加最后一个值
return output