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