Product of Array Except Self in Python

Sun Jul 21 2024

Product of Array Except Self

The "product of array except self" problem is a common coding challenge. The task is to create a new array where each element at index i is the product of all the numbers in the original array except the one at i.

Problem statement

Given an array nums, return an array result such that result[i] is equal to the product of all elements of nums except nums[i].

Example

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

Explanation:

  • 24 is 2 * 3 * 4
  • 12 is 1 * 3 * 4
  • 8 is 1 * 2 * 4
  • 6 is 1 * 2 * 3

Idea to solve

To solve the product of array except self problem, we can use two passes through the array:

Calculate the product of all elements to the left of each index.

Calculate the product of all elements to the right of each index.

Steps:

Create an array result initialized to 1.

Use a variable to keep the product of all elements to the left and update result.

Use another variable to keep the product of all elements to the right and update result.

Full code

Here's a simple Python code to solve the product of array except self problem:

python
1def product_except_self(nums):
2    n = len(nums)
3    result = [1] * n
4    
5    # Calculate left products
6    left_product = 1
7    for i in range(n):
8        result[i] = left_product
9        left_product *= nums[i]
10    
11    # Calculate right products and multiply with left products
12    right_product = 1
13    for i in range(n - 1, -1, -1):
14        result[i] *= right_product
15        right_product *= nums[i]
16    
17    return result
18
19# Example usage
20nums = [1, 2, 3, 4]
21print("Product of array except self:", product_except_self(nums))

Explanation of the code

  • Initialize result Array: Start with an array result filled with 1s.
  • Calculate Left Products: Traverse the array from left to right. For each element, store the product of all previous elements in result.
  • Calculate Right Products and Final Result: Traverse the array from right to left. For each element, multiply the current value in result with the product of all elements to the right.

Example walkthrough

For nums = [1, 2, 3, 4]:

Left Product Pass:

  • Start with result = [1, 1, 1, 1].
  • After processing: result = [1, 1, 2, 6] (products of elements to the left).

Right Product Pass:

  • Start with right_product = 1.
  • Update result with products of elements to the right.
  • Final result = [24, 12, 8, 6].

FAQs

Product of array except self Python

Product of array except self - LeetCode

Product of array except self Java

Product of array except self JavaScript

Sign-in First to Add Comment

Leave a comment 💬

All Comments

No comments yet.