File tree Expand file tree Collapse file tree 1 file changed +71
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You canโt perform that action at this time.
0 commit comments