Skip to content

Commit 087088e

Browse files
committed
product-of-array-except-self
1 parent ff91089 commit 087088e

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* 풀이
3+
* 1. prefix는 현재 인덱스까지의 곱을 저장하고, suffix는 현재 인덱스 이후의 곱을 저장한다.
4+
* 2. 첫 번째 반복문에서 prefix를 계산하고, 두 번째 반복문에서 suffix를 계산하여 answer 배열에 곱한다.
5+
* 시간 복잡도 - O(n) : 배열을 두 번 순회
6+
* 공간 복잡도 - O(1) : answer 배열
7+
*
8+
* @param {number[]} nums
9+
* @return {number[]}
10+
*/
11+
var productExceptSelf = function (nums) {
12+
let prefix = 1;
13+
let suffix = 1;
14+
const n = nums.length;
15+
let answer = new Array(n).fill(1);
16+
17+
// 순방향
18+
for (let i = 0; i < n; i++) {
19+
answer[i] = prefix;
20+
prefix *= nums[i];
21+
}
22+
23+
// 역방향
24+
for (let i = n - 1; i >= 0; i--) {
25+
answer[i] *= suffix;
26+
suffix *= nums[i];
27+
}
28+
return answer;
29+
};

0 commit comments

Comments
 (0)