剑指offer 52 构建乘积数组
2017-10-26 15:36
337 查看
题目描述
给定一个数组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]。不能使用除法。思路
构造一个二维矩阵,存储乘积结果,直接调用。时间复杂度O(n^2)
代码
# -*- coding:utf-8 -*- class Solution: def multiply(self, A): # write code here length = len(A) mul = [] for tmp in range(length): mul.append([num for num in A]) for i in range(length): for j in range(i + 1, length): mul[i][j] = mul[i][j - 1] * mul[j][j] B = [0 for n in range(length)] if length == 1: B = [0] return B elif length == 2: B = [A[1], A[0]] return B for index in range(0, length): if index == 0: B[index] = mul[1][length - 1] elif index == length - 1: B[index] = mul[0][length - 2] else: B[index] = mul[0][index - 1] * mul[index + 1][length - 1] return B
相关文章推荐
- 剑指offer52 构建乘积数组
- 剑指offer - 面试题52:构建乘积数组
- 【剑指offer】题52:构建乘积数组
- 【剑指Offer】面试题52:构建乘积数组
- 【剑指Offer学习】【面试题52:构建乘积数组】
- 【剑指offer-解题系列(52)】构建乘积数组
- 剑指offer--面试题52:构建乘积数组
- 剑指offer 52题 【数组】 构建乘积数组
- 剑指offer——面试题52:构建乘积数组
- 剑指offer 面试题52 构建乘积数组
- 【剑指Offer学习】【面试题52:构建乘积数组】
- 剑指Offer 52题 构建乘积数组 Java版
- 剑指Offer面试题52:构建乘积数组 Java实现
- 剑指offer—构建乘积数组
- 剑指offer --- 构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer——构建乘积数组
- 牛客网剑指offer-构建乘积数组
- 剑指offer-构建乘积数组
- 剑指offer_构建乘积数组