Product of Numbers Except self

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

Solve it without division and in O(n).

For example, given [1,2,3,4], return [24,12,8,6].

Solution

class Solution(object):
    def productExceptSelf(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        output = [1] * len(nums)
        left, right = 1, 1
        for i in range(len(nums) - 1):
            left *= nums[i]
            output[i + 1] = left

        for i in range(len(nums) - 1, 0, -1):
            right *= nums[i]
            output[i-1] *= right
        return output
public class Solution {
    public int[] productExceptSelf(int[] nums) {

        int n = nums.length;
        int [] res = new int[n];

        res[0] = 1;

        for(int i = 1;i<n;i++)
            res[i] = res[i-1] * nums[i - 1];

        int right = 1;

        for(int i = n - 1; i >=0; i--) {
            res[i] = res[i] * right;
            right *= nums[i];
        }

        return res;
    }
}

results matching ""

    No results matching ""