当前位置:   article > 正文

除自身以外数组的乘积_计算数组中每个元素除自己外其他元素的乘积

计算数组中每个元素除自己外其他元素的乘积
输入: [1,2,3,4]
输出: [24,12,8,6]

思路:每个元素的乘积可以分为前缀积和后缀积,如“2”的前缀积为“1”,后缀积为“3*4”,“1的前缀积为”1“,”4“的后缀积为”1“,因此,可以先正向遍历数组,求出每个元素的前缀积,再逆向遍历数组,求每个元素的后缀积,最后将每个元素的前缀积于后缀积相乘便是该元素除自身外的乘积。

  1. class Solution:
  2. def productExceptSelf(self, nums):
  3. answer = [0 for _ in range(len(nums))]
  4. answer[0] = 1
  5. for i in range(1,len(nums)):
  6. answer[i] = answer[i-1] * nums[i-1]
  7. r = 1 # 由于后缀积最终要与前缀积相乘,所以我们可以先用"r"来表示当前元素的后缀积,
  8. # 求的结果后直接与前缀积相乘,减少空间复杂度
  9. for j in range(len(nums)-2,-1,-1):
  10. r *= nums[j+1]
  11. answer[j] = answer[j] * r
  12. return answer

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号