题目链接:https://leetcode.cn/problems/product-of-array-except-self/
难度:中等

描述:
给你一个整数数组 nums,返回 数组 _answer_ ,其中 _answer[i]_ 等于 _nums_ 中除 _nums[i]_ 之外其余各元素的乘积
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
不要使用除法,且在 O(n) 时间复杂度内完成此题。

题解

  1. class Solution:
  2. def productExceptSelf(self, nums: List[int]) -> List[int]:
  3. n = len(nums)
  4. ret = [1] * n
  5. # r[i] = product(r[:i]) + product(r[i+1:])
  6. k = 1
  7. for i in range(n):
  8. ret[i] *= k
  9. k *= nums[i]
  10. k = 1
  11. for i in range(n-1, -1, -1):
  12. ret[i] *= k
  13. k *= nums[i]
  14. return ret