题目描述:
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。
思路:
构建两个分别从头到尾和从维到头的乘积的列表。
代码:
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
# write code here
C,D = [],[]
for i in range(len(A)):
if i == 0:
C.append(1)
else:
C.append(C[i-1]*A[i-1])
for i in range(len(A)):
if i == 0:
D.append(1)
else:
D.append(D[i-1]*A[len(A)-i])
D = D[::-1]
B = []
for i in range(len(A)):
B.append(C[i]*D[i])
return B