题目描述
给定一个数组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的话,就是A和B共用一套内存,A是值和B的值就是一致的
import copy
def multiply(A):
n = len(A)
print("A的长度是:", n)
B = copy.copy(A)
print(B)
for i in range(n):
multy = 1
for j in range(n):
if i != j:
print(i,j)
multy *= A[j]
print("multy",multy)
B[i] = multy
print("A[j]的值为", A[j])
print("B[i]的值为",B[i])
print("B[i]的最终值为", B[i])
print(B)
A = [1,2,3,4,5]
print("A的长度:",len(A))
multiply(A)
这是最终的通过的那个代码
import copy
class Solution:
def multiply(self,A):
n = len(A)
if n == 0:
return []
B = copy.copy(A)
for i in range(n):
multy = 1
for j in range(n):
if i != j:
multy *= A[j]
B[i] = multy
return B