238. Product of Array Except Self (Leetcode || Java || Medium)

Palakkgoyal
2 min readOct 18, 2022

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.

Example 1:

Input: nums = [1,2,3,4]
Output: [24,12,8,6]

Example 2:

Input: nums = [-1,1,0,-3,3]
Output: [0,0,9,0,0]

Constraints:

  • 2 <= nums.length <= 105
  • -30 <= nums[i] <= 30
  • The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.

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.)

SOLUTION

class Solution {
public int[] productExceptSelf(int[] nums) {
int[] result = new int[nums.length];//declaring array to return

result[0] = 1;//element at 0 index declaring as 1 to multiply it by further elements

//multiplying left side elements
for(int i = 1; i < nums.length; i++){
result[i] = result[i — 1]*nums[i — 1];
}

//Initialising variable to multiply the right side elements

int product = 1;
for(int j = nums.length — 1; j >= 0; j — ){
result[j] = result[j]*product;

product *= nums[j];//storing all the product of right side elements
}

return result;
}
}

--

--

Palakkgoyal

Solutions to all your coding related problems at one point. DSA question on daily basis and much more.