class Solution: | |||||
def productExceptSelf(self, nums): | |||||
left = [1] | |||||
right = [1] | |||||
for x in range(1, len(nums)): | |||||
left.append(left[x-1] * nums[x-1]) | |||||
for x in range(1, len(nums)): | |||||
right.append(1) | |||||
for x in range(len(nums) - 2, -1, -1): | |||||
right[x] = right[x+1] * nums[x+1] | |||||
result = [] | |||||
for x in range(0, len(left)): | |||||
result.append(left[x] * right[x]) | |||||
return result | |||||
s = Solution() | |||||
print("Expected: [24, 12, 8, 6]") | |||||
print("Got:", s.productExceptSelf([1, 2, 3, 4])) |
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]. | |||||
Example: | |||||
Input: [1,2,3,4] | |||||
Output: [24,12,8,6] | |||||
Constraint: It's guaranteed that the product of the elements of any prefix or suffix of the array (including the whole array) fits in a 32 bit integer. | |||||
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.) |
#!/bin/bash | |||||
python3 main.py |