Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

238. 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]

Array

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 <= 10^5
  • -30 <= nums[i] <= 30
  • The input is generated such that answer[i] is guaranteed to fit in a 32-bit integer.

Approach

Solution

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var productExceptSelf = function(nums) {
  const n = nums.length;
  const answer = new Array(n).fill(1);
  const rightArr = new Array(n).fill(1);

  for (let i = 1; i < n; i++) {
    answer[i] = nums[i - 1] * answer[i - 1];
  }
  for (let i = n - 2; i >= 0; i--) {
    rightArr[i] = nums[i + 1] * rightArr[i + 1];
  }
  for (let i = 0; i < n; i++) {
    answer[i] *= rightArr[i];
  }
  return answer;
};

Explanation

Last updated on September 24, 2026

Was this page helpful?