Given an array ofnintegers wheren> 1,nums
, return an arrayoutput
such thatoutput[i]
is equal to the product of all the elements ofnums
exceptnums[i]
.
Solve itwithout divisionand in O(n).
For example, given[1,2,3,4]
, return[24,12,8,6]
.
Follow up:
Could you solve it with constant space complexity? (Note: The output arraydoes notcount as extra space for the purpose of space complexity analysis.)
URL: https://leetcode.com/problems/product-of-array-except-self/
class Solution(object):
def productExceptSelf(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
before = [1]*len(nums)
after = [1]*len(nums)
product = [0]*len(nums)
for i in range(1, len(nums)):
before[i] = before[i-1]*nums[i-1]
for i in range(len(nums)-2, -1, -1):
after[i] = after[i+1]*nums[i+1]
for i in range(0, len(nums)):
product[i] = before[i]*after[i]
return product