每日一题 【每日一题】数组剔除元素后的乘积 -Python-20211009

Jack · 2021年10月09日 · 最后由 Jack 回复于 2021年10月10日 · 49 次阅读
本帖已被设为精华帖!
  1. 问题描述: 给定一个整数数组 A。定义 B[i] = A[0]* ...A[i-1]A[i+1]...*A[n-1]。即 B[i] 为剔除 A[i] 元素之后所有数组元素之和,计算数组 B 时不要使用除法输出 B
  2. 问题示例: 输入:A = [1, 2, 3]

输出:B = [6, 3, 2]

注: (B[0]=A[1]*A[2], B[1]=A[0]*A[2], B[2] = A[0]*A[1])

Jack 将本帖设为了精华贴 10月09日 20:40

参考代码:

class Solution:
    def productExcludeItself(self, 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]
        tmp = 1
        for i in range(length):
            B.append(tmp * f[i + 1])
            tmp *= A[i]
        return B
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册