238. Product of Array Except Self
- Product of Array Except Self python solution
题目描述
Given an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

解析
先构造一个数组temp,temp数组内的元素分别是[1, nums[0], nums[0]*nums[1], nums[0]*nums[1]*nums[2], …, ]
该数组的长度为n。
再进行逆序求解,答案数组的最后一个元素正好对应temp数组中的最后一个元素。答案数组的倒数第二个元素则使temp数组中倒数第二个元素乘上nums数组中的最后一个元素。以此类推,详见代码。
// An highlighted block
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
p=1
sol=[]
n=len(nums)
for i in range(n):
sol.append(p)
p*=nums[i]
p=1
for j in range(n-1,-1,-1):
sol[j]*=p
p*=nums[j]
return sol
Reference
https://leetcode.com/problems/product-of-array-except-self/discuss/65625/Python-solution-(Accepted)-O(n)-time-O(1)-space
本文介绍了一种高效算法,用于解决LeetCode上的'数组除自身以外的乘积'问题。通过两次遍历,首先构建一个临时数组,然后逆序计算最终结果,实现了O(n)的时间复杂度和O(1)的空间复杂度。
478

被折叠的 条评论
为什么被折叠?



