Product of Array Except Self
Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i].
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
Follow up: Can you solve the problem in O(1) extra space complexity? The output array does not count as extra space for space complexity analysis.
Example 1
Input
nums = [1,2,3,4]Output
[24,12,8,6]For each index, the output is the product of every number in nums except the number at that index.
Example 2
Input
nums = [-1,1,0,-3,3]Output
[0,0,9,0,0]Only the position containing 0 has a nonzero product, equal to (-1) * 1 * (-3) * 3 = 9; all other positions include the zero in their product.
Constraints
- 2 <= nums.length <= 10^5
- -30 <= nums[i] <= 30
- The input is generated such that answer[i] is guaranteed to fit in a 32-bit integer.