DSA Problem Solution: 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.
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: O(n)
public class Solution { public int[] ProductExceptSelf(int[] nums) { int allProduct = 1; int zeroCount =0; for(int i=0;i<nums.Length;i++) { if(nums[i]!=0) { allProduct *= nums[i]; } else{ zeroCount++; } } for(int i=0;i<nums.Length;i++) { if(zeroCount>1 && nums[i]==0) { nums[i]=0; } else if(zeroCount>0 && nums[i]!=0) { nums[i]=0; } else if(zeroCount==1 && nums[i]==0) { nums[i]=allProduct; } else{ nums[i]=allProduct/nums[i]; } } return nums; } }
0 comments :
Post a Comment