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

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:

  • -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;
}
}

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Palakkgoyal

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