马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
给你一个整数数组 nums,返回 数组 answer ,此中 answer 便是 nums 中除 nums 之外别的各元素的乘积 。
标题数据 包管 数组 nums之中恣意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请 不要利用除法,且在 O(n) 时间复杂度内完成此题。
示例 1:
- <strong>输入:</strong> nums = [1,2,3,4]
- <strong>输出:</strong> [24,12,8,6]
复制代码 示例 2:
- <strong>输入:</strong> nums = [-1,1,0,-3,3]
- <strong>输出:</strong> [0,0,9,0,0]
复制代码 泉源:力扣(LeetCode)
链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)
思绪:分别算出从前今后和从后往前的累乘序列然后再分别对应相乘即可。
- class Solution:
- def productExceptSelf(self, nums: List[int]) -> List[int]:
- ls1 = [1]; ls2 = [1]
- res = []
- length = len(nums)
- for i in range(length - 1):
- ls1.append(nums[i] * ls1[-1])
- ls2.append(nums[length -1 - i] * ls2[-1])
- for i in range(length):
- res.append(ls1[i] * ls2[length -1 -i])
- return res
复制代码
|