LEETCODE SERIES || DAY 11 || (238) Product of Array Except Self

1–2 minutes

read

Day 11 Leet code series, today we will be picking the problem Product of Array Except Self (https://leetcode.com/problems/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].

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]
class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        vector<int> left(nums.size(),1);
        vector<int> right(nums.size(),1);
        vector<int> res(nums.size(),1);
        for(int i=1;i<nums.size();i++){
            left[i] = left[i-1]*nums[i-1]; 
        }
        for(int i=nums.size()-2; i>=0; i--){
            right[i] = right[i+1]*nums[i+1];
        }
        for(int i=0;i<nums.size();i++){
            res[i] = left[i]*right[i];
        }
        return res;
    }
};

Leave a comment