File tree Expand file tree Collapse file tree 5 files changed +112
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +112
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {boolean }
4+ */
5+ var containsDuplicate = function ( nums ) {
6+ let numsSet = new Set ( ) ;
7+ for ( let i = 0 ; i < nums . length ; i ++ ) {
8+ if ( numsSet . has ( nums [ i ] ) ) return true ;
9+ numsSet . add ( nums [ i ] )
10+ }
11+ return false ;
12+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {number }
4+ */
5+ var rob = function ( nums ) {
6+ const memo = { } ;
7+
8+ function dfs ( start ) {
9+ if ( memo [ start ] !== undefined ) return memo [ start ] ;
10+ if ( start >= nums . length ) {
11+ memo [ start ] = 0 ;
12+ } else {
13+ memo [ start ] = Math . max ( nums [ start ] + dfs ( start + 2 ) , dfs ( start + 1 ) )
14+ }
15+ return memo [ start ] ;
16+ }
17+
18+ return dfs ( 0 ) ;
19+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {number }
4+ */
5+ var longestConsecutive = function ( nums ) {
6+ if ( ! nums . length ) return 0 ;
7+
8+ nums . sort ( ( a , b ) => a - b ) ;
9+ var answer = 0 ;
10+ var length = 1 ;
11+ for ( let i = 0 ; i < nums . length - 1 ; i ++ ) {
12+ if ( nums [ i ] === nums [ i + 1 ] ) {
13+ continue ;
14+ } else if ( nums [ i ] + 1 === nums [ i + 1 ] ) {
15+ length ++ ;
16+ } else {
17+ answer = Math . max ( length , answer ) ;
18+ length = 1 ;
19+ }
20+ }
21+
22+ answer = Math . max ( length , answer ) ;
23+
24+ return answer ;
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+ var dict = { } ;
8+ var sortTable = [ ] ;
9+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10+ dict [ nums [ i ] ] = dict [ nums [ i ] ] ? dict [ nums [ i ] ] + 1 : 1 ;
11+ }
12+
13+ for ( let ele in dict ) {
14+ sortTable . push ( [ ele , dict [ ele ] ] ) ;
15+ }
16+ sortTable . sort ( ( a , b ) => {
17+ return b [ 1 ] - a [ 1 ] ;
18+ } ) ;
19+
20+ return sortTable . slice ( 0 , k ) . map ( e => Number ( e [ 0 ] ) )
21+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * ์ ์ ๋ฐฐ์ด ๋ ์ซ์๋ฅผ ํฉ์ณ์ target์ ๊ฐ์ด ๋์ค๊ฒ ํด์ผํจ
3+ * ํด๋นํ๋ ์ธ๋ฑ์ค๋ฅผ ๊ธธ์ด๊ฐ 2์ธ ๋ฐฐ์ด๋ก ๋ฐํํ์์ค.
4+ * ๊ฐ ์ ์๋ ํ ๋ฒ์ฉ๋ง ์ธ ์ ์์.
5+ *
6+ * @param {number[] } nums
7+ * @param {number } target
8+ * @return {number[] }
9+ */
10+ var twoSum = function ( nums , target ) {
11+ const numsMap = new Map ( ) ;
12+
13+ nums . forEach ( ( num , i ) => {
14+ if ( ! numsMap . has ( num ) ) numsMap . set ( num , [ ] ) ;
15+ numsMap . get ( num ) . push ( i ) ;
16+ } ) ;
17+
18+ for ( let i = 0 ; i < nums . length ; i ++ ) {
19+ for ( let j = i + 1 ; j < nums . length ; j ++ ) {
20+ if ( nums [ i ] + nums [ j ] === target ) {
21+ if ( hasMultipleEntries ( numsMap . get ( nums [ i ] ) ) ) {
22+ return [ ...numsMap . get ( nums [ i ] ) . slice ( 0 , 2 ) ] ;
23+ } else {
24+ return [ ...numsMap . get ( nums [ i ] ) , ...numsMap . get ( nums [ j ] ) ] ;
25+ }
26+ }
27+ }
28+ }
29+
30+ return ;
31+ } ;
32+
33+ function hasMultipleEntries ( arr ) {
34+ return arr . length >= 2 ;
35+ }
You canโt perform that action at this time.
0 commit comments