构建乘积数组
时间限制:1秒 空间限制:32768K 热度指数:108281
本题知识点: 数组
算法知识视频讲解
题目描述
给定一个数组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]。不能使用除法。
解析
把数组写成一个方阵,并把对角线元素赋值为1,然后每一行的乘积对于B中的各个元素值。
比如{3,4,5}:
B[0] : 1 4 5
B[1] : 3 1 5
B[2] : 3 4 1
B = [1x4x5,3x1x5,3x4x1]
代码
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
# write code here
B = []
for i in range(len(A)):
temp = A[i]
b = 1
for j in range(len(A)):
A[i] = 1
b *= A[j]
B.append(b)
A[i] = temp
return B