LeetCode--238. Product of Array Except Self(数组除自身以外的乘积)Python
题目:
给定一个包含n个数字的数组nums,n>1,返回一个数组output,其中output[i]的内容为除了nums[i]以外的nums中其他所有元素的乘积,要求不使用除号,且时间复杂度为O(n)。
解题思路:
由于不能使用除号,所以必须只有乘号来计算。维护两个数组dp1和dp2,分别用来保存第i个位置之前所有数的乘积和第i个位置之后所有数的乘积。
代码(Python):
class Solution(object): def productExceptSelf(self, nums): """ :type nums: List[int] :rtype: List[int] """ dp1 = [1] dp2 = [1] for i in range(len(nums)-1): dp1.append(dp1[i]*nums[i]) dp2.append(dp2[i]*nums[-i-1]) output = [] for i in range(len(dp1)): output.append(dp1[i]*dp2[-i-1]) return output
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。