Leetcode 238. Product of Array Except Self
Given an array
nums
of n integers where n > 1, return an arrayoutput
such thatoutput[i]
is equal to the product of all the elements ofnums
exceptnums[i]
.Example:
Input:
[1,2,3,4]
Output:
[24,12,8,6]
Note: Please solve it without division and in O(n).
Follow up:
Could you solve it with constant space complexity? (The output array does not count as extra space for the purpose of space complexity analysis.)
注意结果的拆分,不用重复运算乘积,代码如下:
class Solution(object):
def productExceptSelf(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
n = len(nums)
if(n == 2):
return [nums[1], nums[0]]
result = [1] * n
k = 1
for i in range(n):
result[i] = k
k = k * nums[i]
k = 1
for i in range(n-1,-1,-1):
result[i] *= k
k = k * nums[i]
return result