Skip to content

Commit 6be40f5

Browse files
committed
product of array except self solution
1 parent 8ad991f commit 6be40f5

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/*
2+
[๋ฌธ์ œํ’€์ด]
3+
- ๋ณธ์ธ index๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  index์˜ ์ˆ˜๋ฅผ ๊ณฑํ•˜์ž.
4+
- O(N)์œผ๋กœ ํ’€์ž.
5+
- ๋‚˜๋ˆ—์…ˆ์€ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž.
6+
7+
index 0 1 2 3
8+
num 1 2 3 4
9+
prefix 1 1 2 6
10+
11+
index 0 1 2 3
12+
num 1 2 3 4
13+
suffix 24 12 4 1
14+
15+
answer = prefix * suffix
16+
24 12 8 6
17+
18+
- ํ’€์ด 1
19+
time: O(N), space: O(N)
20+
class Solution {
21+
public int[] productExceptSelf(int[] nums) {
22+
int len = nums.length;
23+
int[] answer = new int[len];
24+
int[] prefix = new int[len];
25+
int[] suffix = new int[len];
26+
27+
prefix[0] = 1;
28+
suffix[len - 1] = 1;
29+
for (int i = 1; i < len; i++) {
30+
prefix[i] = prefix[i - 1] * nums[i - 1];
31+
}
32+
for (int i = len - 2; i >= 0; i--) {
33+
suffix[i] = suffix[i + 1] * nums[i + 1];
34+
}
35+
36+
for (int i = 0; i < len; i++) {
37+
answer[i] = prefix[i] * suffix[i];
38+
}
39+
return answer;
40+
}
41+
}
42+
43+
- ํ’€์ด 2
44+
time: O(N), space: O(1)
45+
46+
47+
[ํšŒ๊ณ ]
48+
๋ณธ์ธ index๊ฐ€ ์•„๋‹Œ "์•ž์˜ ์ˆ˜๋“ค์˜ ๊ณฑ"๊ณผ "๋’ค์˜ ์ˆ˜๋“ค์˜ ๊ณฑ" ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?
49+
์˜ ๊ณ ๋ฏผ์—์„œ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค.
50+
51+
ํ’€์ด๋ฐฉ๋ฒ•์„ ๋ณด๊ณ  ๋ณ€์ˆ˜์™€ ๋ฐ˜๋ณต๋ฌธ์„ ๋” ์“ฐ๊ธฐ ์‹ซ์–ดํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์•„์ด๋””์–ด๊ฐ€ ๋‹ซํžŒ ๊ฒƒ ๊ฐ™๋‹ค..
52+
์šฐ์„  ๋งŽ์ด ์จ๋ณด๊ณ  ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ณด์ž.
53+
*/
54+
class Solution {
55+
public int[] productExceptSelf(int[] nums) {
56+
int len = nums.length;
57+
58+
int[] answer = new int[len];
59+
answer[0] = 1;
60+
for (int i = 1; i < len; i++) {
61+
answer[i] = answer[i - 1] * nums[i - 1];
62+
}
63+
64+
int suffixMul = 1;
65+
for (int i = len - 2; i >= 0; i--) {
66+
suffixMul *= nums[i + 1];
67+
answer[i] *= suffixMul;
68+
}
69+
return answer;
70+
}
71+
}

0 commit comments

Comments
ย (0)