[알고리즘] LeetCode - Product of Array Except Self
LeetCode - Product of Array Except Self
문제 설명
Given an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Example 1:
Input: [1,2,3,4]
Output: [24,12,8,6]
Constrains
It's guaranteed that the product of the elements of any prefix or suffix of the array (including the whole array) fits in a 32 bit integer.
Solution
- null reference를 주의하자.
아래와 같이 생각해보면, 자신을 제외한 누적된 곱을 구할수있다.
/*
값 1 2 3 4
앞에서부터 누적 곱 1 1X2 1X2X3 1X2X3X4
뒤에서부터 누적 곱 1X2X3X4 2X3X4 3X4 4
*/
class Solution {
public int[] productExceptSelf(int[] nums) {
int numsLen=nums.length;
int[] preProduct=new int[numsLen];
int[] postProduct=new int[numsLen];
int[] arrProduct=new int[numsLen];
int productVal=1;
for(int i=0; i<numsLen; i++){
productVal=productVal*nums[i];
preProduct[i]=productVal;
}
productVal=1;
for(int i=numsLen-1; i>=0; i--){
productVal=productVal*nums[i];
postProduct[i]=productVal;
}
for(int j=0; j<numsLen; j++){
if(j==0){
arrProduct[j]= postProduct[j+1];
}
else if(j==numsLen-1){
arrProduct[j]= preProduct[j-1];
}
else{
arrProduct[j]= preProduct[j-1]*postProduct[j+1];
}
}
return arrProduct;
}
}
Author And Source
이 문제에 관하여([알고리즘] LeetCode - Product of Array Except Self), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jerry92/알고리즘-LeetCode-Product-of-Array-Except-Self
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Given an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Input: [1,2,3,4]
Output: [24,12,8,6]
It's guaranteed that the product of the elements of any prefix or suffix of the array (including the whole array) fits in a 32 bit integer.
아래와 같이 생각해보면, 자신을 제외한 누적된 곱을 구할수있다.
/*
값 1 2 3 4
앞에서부터 누적 곱 1 1X2 1X2X3 1X2X3X4
뒤에서부터 누적 곱 1X2X3X4 2X3X4 3X4 4
*/
class Solution {
public int[] productExceptSelf(int[] nums) {
int numsLen=nums.length;
int[] preProduct=new int[numsLen];
int[] postProduct=new int[numsLen];
int[] arrProduct=new int[numsLen];
int productVal=1;
for(int i=0; i<numsLen; i++){
productVal=productVal*nums[i];
preProduct[i]=productVal;
}
productVal=1;
for(int i=numsLen-1; i>=0; i--){
productVal=productVal*nums[i];
postProduct[i]=productVal;
}
for(int j=0; j<numsLen; j++){
if(j==0){
arrProduct[j]= postProduct[j+1];
}
else if(j==numsLen-1){
arrProduct[j]= preProduct[j-1];
}
else{
arrProduct[j]= preProduct[j-1]*postProduct[j+1];
}
}
return arrProduct;
}
}
Author And Source
이 문제에 관하여([알고리즘] LeetCode - Product of Array Except Self), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jerry92/알고리즘-LeetCode-Product-of-Array-Except-Self저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)