File tree Expand file tree Collapse file tree 2 files changed +59
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 2 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+
3+ 시간 복잡도: O(n)
4+ 공간 복잡도: O(1)
5+
6+ 해당 문제를 구할 때 바로 생각나지 않아 leet code의 코멘트들을 보며 힌트를 구했습니다.
7+ */
8+ function climbStairs ( n : number ) : number {
9+ if ( n <= 2 ) return n ;
10+
11+ let a = 1 ;
12+ let b = 2 ;
13+ for ( let i = 3 ; i <= n ; i ++ ) {
14+ let c = a + b ;
15+ a = b ;
16+ b = c ;
17+ }
18+ return b ;
19+ }
Original file line number Diff line number Diff line change 1+ /*
2+ 시간 복잡도: O(n)
3+ 공간 복잡도: O(1)
4+ */
5+ function productExceptSelf ( nums : number [ ] ) : number [ ] {
6+ const n = nums . length ;
7+ const answer = new Array < number > ( n ) ;
8+
9+ // 왼쪽 곱 채우기
10+ let leftProduct = 1 ;
11+ for ( let i = 0 ; i < n ; i ++ ) {
12+ answer [ i ] = leftProduct ;
13+ leftProduct *= nums [ i ] ;
14+ }
15+
16+ // 오른쪽 곱 채우기
17+ let rightProduct = 1 ;
18+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
19+ answer [ i ] *= rightProduct ;
20+ rightProduct *= nums [ i ] ;
21+ }
22+ return answer ;
23+ }
24+
25+ /*
26+ // Time Limit Exceeded
27+ function productExceptSelf(nums: number[]): number[] {
28+ let answer = [];
29+ for (let i = 0; i < nums.length; i++) {
30+ const mulOfNums = nums.reduce((accumulator, currentValue, currentIndex) => {
31+ if (currentIndex !== i) {
32+ return accumulator * currentValue;
33+ }
34+ return accumulator;
35+ }, 1);
36+ answer.push(mulOfNums);
37+ }
38+ return answer;
39+ }
40+ */
You can’t perform that action at this time.
0 commit comments