File tree Expand file tree Collapse file tree 3 files changed +77
-0
lines changed Expand file tree Collapse file tree 3 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 1+ // complexity
2+ // time: O(n^2)
3+ // - sort: O(n log n)
4+ // - for loop: O(n)
5+ // - while loop: O(n)
6+ // space: O(n)
7+ // - sortedNums: O(n)
8+ // - else : O(1)
9+
10+ var threeSum = function ( nums ) {
11+ const sortedNums = nums . sort ( ( a , b ) => a - b )
12+ const lengthOfArray = nums . length ;
13+ const answer = [ ] ;
14+
15+ for ( let i = 0 ; i < lengthOfArray ; i ++ ) {
16+ if ( i > 0 && nums [ i ] === nums [ i - 1 ] ) continue ;
17+ const target = ( - 1 ) * sortedNums [ i ] ;
18+
19+ let left = i + 1 ;
20+ let right = lengthOfArray - 1 ;
21+
22+ while ( left < right ) {
23+ const sumOfLeftAndRight = sortedNums [ left ] + sortedNums [ right ] ;
24+ const diff = sumOfLeftAndRight - target ;
25+
26+ if ( diff > 0 ) {
27+ right -= 1 ;
28+ } else if ( diff < 0 ) {
29+ left += 1
30+ } else {
31+ answer . push ( [ sortedNums [ i ] , sortedNums [ left ] , sortedNums [ right ] ] ) ;
32+ // μ€λ³΅λλ λΆλΆμ μ²λ¦¬νλ κ³Όμ μμ κ³μ failλμ΄ μ°Ύμ보λ μ΄λ κ² ν΄μΌ ν΅κ³Όλμλ€.
33+ while ( left < right && sortedNums [ left ] === sortedNums [ left + 1 ] ) left ++ ;
34+ while ( left < right && sortedNums [ right ] === sortedNums [ right - 1 ] ) right -- ;
35+
36+ left ++ ;
37+ right -- ;
38+ }
39+ }
40+ }
41+ return answer
42+ } ;
43+
Original file line number Diff line number Diff line change 1+ // complexity
2+ // time: O(n)
3+ // - for loop: O(n)
4+ // space: O(1)
5+ // - nμ κ΄κ³μμ΄ μμκ°μ λ³μλ§ μ¬μ©λλ―λ‘ O(1)
6+
7+ var climbStairs = function ( n ) {
8+ let num1 = 1 ;
9+ let num2 = 1 ;
10+ let temp = 0 ;
11+
12+ for ( let i = 2 ; i <= n ; ++ i ) {
13+ temp = num2 ;
14+ num2 = num1 + num2 ;
15+ num1 = temp ;
16+ }
17+
18+ return num2 ;
19+ } ;
20+
Original file line number Diff line number Diff line change 1+ // complexity
2+ // time: O(n log n)
3+ // - sort: O(n log n)
4+ // - split: O(n)
5+ // - join: O(n)
6+ // space: O(n)
7+ // - sortedS: O(n)
8+ // - sortedT: O(n)
9+ // - else : O(1)
10+
11+ var isAnagram = function ( s , t ) {
12+ return s . split ( '' ) . sort ( ) . join ( '' ) === t . split ( '' ) . sort ( ) . join ( '' )
13+ } ;
14+
You canβt perform that action at this time.
0 commit comments