Product of Array Except Self

Published by

on

Problem

https://leetcode.com/problems/product-of-array-except-self/description

Solution

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int len = nums.length;
        int[] leftArr = new int[len];
        int[] rightArr = new int[len];

        int result = 1;
        for (int i=0;i<len;i++) {
            result *= nums[i]; 
            leftArr[i] = result;
        }

        result = 1;
        for (int i=0;i<len;i++){
            result *= nums[len-i-1];
            rightArr[len-i-1] = result;
        }


        // print(leftArr);
        // print(rightArr);
        int[] resultArr = new int[len];
        resultArr[0] = rightArr[1];
        resultArr[len-1] = leftArr[len-2];
        for(int i=1;i<len-1;i++){
            resultArr[i] = leftArr[i-1] * rightArr[i+1];
        }
        return resultArr;
    }

    private void print(int[] arr) {
        for(int i=0;i<arr.length;i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println("");
    }
}

Notes

  • 자신을 제외한 나머지 숫자들의 곱 = 자신의 왼쪽에 있는 숫자들의 곱 x 오른쪽에 있는 숫자들의 곱
    • 다른 의미의 배열을 생성해서 계산한다는 아이디어

Leave a comment