Python练习题——数组剔除元素后的乘积

问题

        给定一个整数数组A,定义B[i]为剔除A[i]元素之后所有数组元素之积,输出数组B

答案

        答案一

def function(A):
    B = []
    for i in range(len(A)):
        num = 1
        for j in range(i):
            num *= A[j]
        for n in range(i+1, len(A)):
            num *= A[n]
        B.append(num)
    print(B)

A = [1,2,3]
function(A)

        答案二

def productExcludeItself(A):
    length, B = len(A), []
    f = [0 for i in range(length + 1)]
    f[length] = 1
    for i in range(length-1, 0, -1):
        f[i] = f[i+1] * A[i]
    temp = 1
    for i in range(length):
        B.append(temp * f[i+1])
        temp *= A[i]
    return B

A = [1,2,3]
print(productExcludeItself(A))

你可能感兴趣的:(算法,数据结构,leetcode,python)