File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number[] }
4
+ */
5
+ var productExceptSelf = function ( nums ) {
6
+ // 1.
7
+ // ๊ฐ ์ธ๋ฑ์ค์์ ์๊ธฐ ์์ ์ ์ธํ ๋ฐฐ์ด ๋ง๋ ๋ค ๊ณฑ์
์ํ โ ์๊ฐ๋ณต์ก๋ O(nยฒ)
8
+ // (์ค์ฒฉ ๋ฃจํ๋ก ์ธํด ์๊ฐ๋ณต์ก๋ O(nยฒ), ํฐ ์
๋ ฅ์์๋ ์๊ฐ ์ด๊ณผ ๋ฐ์)
9
+ let result = [ ] ;
10
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
11
+ const productNums = [ ...nums . slice ( 0 , i ) , ...nums . slice ( i + 1 ) ] ;
12
+
13
+ let product = 1 ;
14
+ for ( let j = 0 ; j < productNums . length ; j ++ ) {
15
+ product *= productNums [ j ] ;
16
+ }
17
+ result . push ( product ) ;
18
+ }
19
+ return result ;
20
+
21
+ // 2.
22
+ const n = nums . length ;
23
+ // ์ ๋ต ๋ฐฐ์ด์ 1๋ก ์ด๊ธฐํ (๊ณฑ์
์ ์ํฅ์ ์ฃผ์ง ์๋๋ก)
24
+ const answer = new Array ( n ) . fill ( 1 ) ;
25
+
26
+ // ์ผ์ชฝ ๋์ ๊ณฑ ๊ณ์ฐ
27
+ let left = 1 ;
28
+ for ( let i = 0 ; i < n ; i ++ ) {
29
+ answer [ i ] = left ;
30
+ left *= nums [ i ] ;
31
+ }
32
+
33
+ // ์ค๋ฅธ์ชฝ ๋์ ๊ณฑ ๊ณ์ฐ
34
+ let right = 1 ;
35
+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
36
+ answer [ i ] *= right ;
37
+ right *= nums [ i ] ;
38
+ }
39
+
40
+ return answer ;
41
+ } ;
You canโt perform that action at this time.
0 commit comments