题目描述:
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4]
输出: [24,12,8,6]
代码如下:
方法一:
class Solution(object):
def productExceptSelf(self, nums):
fir = 1
k = 0
num = []
for i in nums:
if i:
fir *= i
else:
k += 1
if k > 2:
break
if k > 1:
for j in nums:
num.append(0)
elif k == 1:
for m in nums:
if m:
num.append(0)
else:
num.append(fir)
else:
for n in nums:
num.append(fir/n)
return num
方法二:不用除法
class Solution(object):
def productExceptSelf(self, nums):
fir = 1
num1 = []
length = len(nums)
for i in range(0,length):
num1.insert(i,fir)
fir *= nums[i]
fir = 1
for j in range(length-1,-1,-1):
num1[j] *= fir
fir *= nums[j]
return num1