File tree Expand file tree Collapse file tree 1 file changed +47
-26
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +47
-26
lines changed Original file line number Diff line number Diff line change 66 * 공간 복잡도: O(1)
77 * - 추가 배열 생성 X
88 */
9- const productExceptSelf = ( nums ) => {
10- let multiplyResult = 1 ;
11- let countZero = 0 ;
9+ // const productExceptSelf = (nums) => {
10+ // let multiplyResult = 1;
11+ // let countZero = 0;
1212
13- for ( let i = 0 ; i < nums . length ; i += 1 ) {
14- if ( nums [ i ] === 0 ) {
15- countZero += 1 ;
13+ // for (let i = 0; i < nums.length; i += 1) {
14+ // if (nums[i] === 0) {
15+ // countZero += 1;
1616
17- if ( countZero >= 2 ) {
18- multiplyResult = 0 ;
19- break ;
20- }
17+ // if (countZero >= 2) {
18+ // multiplyResult = 0;
19+ // break;
20+ // }
2121
22- continue ;
23- }
24- multiplyResult *= nums [ i ] ;
25- }
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+ // };
43+
44+ // 누적 합 이용
45+ const productExceptSelf = ( nums ) => {
46+ const result = Array ( nums . length ) . fill ( 1 ) ;
47+
48+ let prefix = 1 ;
2649
2750 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- }
51+ result [ i ] = prefix ;
52+ prefix *= nums [ i ] ;
53+ }
54+
55+ let postfix = 1 ;
56+
57+ for ( let i = nums . length - 1 ; i >= 0 ; i -= 1 ) {
58+ result [ i ] *= postfix ;
59+ postfix *= nums [ i ] ;
3960 }
4061
41- return nums ;
62+ return result ;
4263} ;
You can’t perform that action at this time.
0 commit comments