LeetCode#238. 除自身以外数组的乘积

[复制链接]
发表于 2025-11-4 00:57:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
给你一个整数数组 nums,返回 数组 answer ,此中 answer 便是 nums 中除 nums 之外别的各元素的乘积 。
标题数据 包管 数组 nums之中恣意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。
请 不要利用除法,且在 O(n) 时间复杂度内完成此题。

示例 1:
  1. <strong>输入:</strong> nums = [1,2,3,4]
  2. <strong>输出:</strong> [24,12,8,6]
复制代码
示例 2:
  1. <strong>输入:</strong> nums = [-1,1,0,-3,3]
  2. <strong>输出:</strong> [0,0,9,0,0]
复制代码
泉源:力扣(LeetCode)
链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)
思绪:分别算出从前今后和从后往前的累乘序列然后再分别对应相乘即可。
  1. class Solution:
  2.     def productExceptSelf(self, nums: List[int]) -> List[int]:
  3.         ls1 = [1]; ls2 = [1]
  4.         res = []
  5.         length = len(nums)
  6.         for i in range(length - 1):
  7.             ls1.append(nums[i] * ls1[-1])
  8.             ls2.append(nums[length -1 - i] * ls2[-1])
  9.         for i in range(length):
  10.             res.append(ls1[i] * ls2[length -1 -i])
  11.         return res
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表