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