Last updated on July 18th, 2024 at 10:42 pm
Here, We see Product of Array Except Self LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Array
Companies
Amazon, Apple, Facebook, LinkedIn, Microsoft
Level of Question
Medium
Product of Array Except Self LeetCode Solution
Table of Contents
Problem Statement
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]
1. Product of Array Except Self LeetCode Solution C++
class Solution { public: vector<int> productExceptSelf(vector<int>& nums) { int n = nums.size(); vector<int> output; for(int i=0; i<n; i++){ int product = 1; for(int j=0; j<n; j++){ if(i == j) continue; product *= nums[j]; } output.push_back(product); } return output; } };
2. Product of Array Except Self LeetCode Solution Java
class Solution { public int[] productExceptSelf(int[] nums) { int n = nums.length; int ans[] = new int[n]; for(int i = 0; i < n; i++) { int pro = 1; for(int j = 0; j < n; j++) { if(i == j) continue; pro *= nums[j]; } ans[i] = pro; } return ans; } }
3. Product of Array Except Self Solution JavaScript
var productExceptSelf = function(nums) { const n = nums.length; const prefix = new Array(n).fill(1); const suffix = new Array(n).fill(1); for (let i = 1; i < n; i++) { prefix[i] = prefix[i - 1] * nums[i - 1]; } for (let i = n - 2; i >= 0; i--) { suffix[i] = suffix[i + 1] * nums[i + 1]; } const answer = []; for (let i = 0; i < n; i++) { answer[i] = prefix[i] * suffix[i]; } return answer; };
4. Product of Array Except Self Solution Python
class Solution(object): def productExceptSelf(self, nums): n = len(nums) prefix = [1] * n suffix = [1] * n for i in range(1, n): prefix[i] = prefix[i - 1] * nums[i - 1] for i in range(n - 2, -1, -1): suffix[i] = suffix[i + 1] * nums[i + 1] answer = [prefix[i] * suffix[i] for i in range(n)] return answer