51.构建乘积数组
问题:
给定一个数组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]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)
解决:
思想:
B的数据是由A中的数据累积而得到的,关键在于如果下标相同的话就会跳过那个元素的累积。
python代码:
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
# write code here
B=[]
tmp=1
n=len(A)
for x in range(n):
for i in range(n):
if(i==x):
continue
else:
tmp*=A[i]
B.append(tmp)
tmp=1
return B

1093

被折叠的 条评论
为什么被折叠?



