Product of Array Except Self | Leetcode 238 solution

 238. Product of Array Except Self


 Easy solution : 


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:

  • 2 <= nums.length <= 105
  • -30 <= nums[i] <= 30
  • The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.

 


Solution : 

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
       
          long long product = 1;
          int flag = 0;
          for(auto &x : nums)
          { 
              if(x == 0)
              {
                  flag ++;
              }
              else
              product *= x;
          }
          if(flag > 1)
          {
              return vector<int>(nums.size() , 0);
          }
          vector<int> ans ;
          for(auto &x : nums)
          {
              if(flag == 1)
              {
                  if(x ==0)
                  {
                      ans.push_back(product);
                  }
                  else
                  {
                      ans.push_back(0);
                  }
              }
              else
              {
                  ans.push_back(product/ x);
              }
          }
          return ans ;
    }
};

Comments