File tree Expand file tree Collapse file tree 5 files changed +95
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +95
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {boolean }
4
+ */
5
+
6
+ var containsDuplicate = function ( nums ) {
7
+ const originalLength = nums . length ;
8
+ const parsedLength = new Set ( nums ) . size ;
9
+
10
+ return originalLength !== parsedLength ;
11
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number }
4
+ */
5
+
6
+ // dp 개념을 이용
7
+
8
+ var rob = function ( nums ) {
9
+ if ( nums . length == 0 ) { return 0 } ;
10
+ if ( nums . length == 1 ) { return nums [ 0 ] } ;
11
+
12
+ nums [ 1 ] = Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
13
+
14
+ for ( let i = 2 ; i < nums . length ; i ++ ) {
15
+ nums [ i ] = Math . max ( nums [ i - 2 ] + nums [ i ] , nums [ i - 1 ] )
16
+ }
17
+
18
+ return nums [ nums . length - 1 ] ;
19
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number }
4
+ */
5
+
6
+ var longestConsecutive = function ( nums ) {
7
+ if ( nums . length <= 1 ) return nums . length ;
8
+
9
+ const sortedArray = [ ...new Set ( nums ) ] . sort ( ( a , b ) => a - b ) ;
10
+
11
+ let maxLength = 1 ;
12
+ let currentLength = 1 ;
13
+
14
+ for ( let i = 1 ; i < sortedArray . length ; i ++ ) {
15
+ if ( sortedArray [ i ] === sortedArray [ i - 1 ] + 1 ) {
16
+ currentLength ++ ;
17
+ } else {
18
+ currentLength = 1 ;
19
+ }
20
+
21
+ maxLength = Math . max ( maxLength , currentLength ) ;
22
+ }
23
+
24
+ return maxLength ;
25
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @param {number } k
4
+ * @return {number[] }
5
+ */
6
+ var topKFrequent = function ( nums , k ) {
7
+ // Map을 통해 nums의 담긴 숫자들의 빈번함을 정리함.
8
+ const frequencyMap = nums . reduce ( ( map , num ) => {
9
+ map . set ( num , ( map . get ( num ) || 0 ) + 1 ) ;
10
+ return map ;
11
+ } , new Map ( ) ) ;
12
+
13
+ // 빈도수를 기준으로 정렬하여 답을 유도함.
14
+ const result = Array . from ( frequencyMap . entries ( ) )
15
+ . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] )
16
+ . slice ( 0 , k )
17
+ . map ( item => item [ 0 ] ) ;
18
+
19
+ return result ;
20
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @param {number } target
4
+ * @return {number[] }
5
+ */
6
+ var twoSum = function ( nums , target ) {
7
+ const numMap = new Map ( ) ;
8
+
9
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10
+ let complement = target - nums [ i ] ;
11
+
12
+ if ( numMap . has ( complement ) ) {
13
+ return [ numMap . get ( complement ) , i ] ;
14
+ }
15
+
16
+ numMap . set ( nums [ i ] , i ) ;
17
+ }
18
+
19
+ return [ ] ;
20
+ } ;
You can’t perform that action at this time.
0 commit comments