File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * 시간복잡도: O(n)
3
+ * - 첫번째 for문 O(n)
4
+ * - 두번째 for문 O(n)
5
+ *
6
+ * 공간 복잡도: O(1)
7
+ * - 추가 배열 생성 X
8
+ */
9
+ const productExceptSelf = ( nums ) => {
10
+ let multiplyResult = 1 ;
11
+ let countZero = 0 ;
12
+
13
+ for ( let i = 0 ; i < nums . length ; i += 1 ) {
14
+ if ( nums [ i ] === 0 ) {
15
+ countZero += 1 ;
16
+
17
+ if ( countZero >= 2 ) {
18
+ multiplyResult = 0 ;
19
+ break ;
20
+ }
21
+
22
+ continue ;
23
+ }
24
+ multiplyResult *= nums [ i ] ;
25
+ }
26
+
27
+ for ( let i = 0 ; i < nums . length ; i += 1 ) {
28
+ if ( countZero === 1 ) {
29
+ if ( nums [ i ] === 0 ) {
30
+ nums [ i ] = multiplyResult ;
31
+ } else {
32
+ nums [ i ] = 0 ;
33
+ }
34
+ } else if ( countZero >= 2 ) {
35
+ nums [ i ] = 0 ;
36
+ } else {
37
+ nums [ i ] = multiplyResult / nums [ i ] ;
38
+ }
39
+ }
40
+
41
+ return nums ;
42
+ } ;
You can’t perform that action at this time.
0 commit comments