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