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