File tree 4 files changed +48
-0
lines changed
longest-consecutive-sequence
4 files changed +48
-0
lines changed Original file line number Diff line number Diff line change
1
+ function containsDuplicate ( nums : number [ ] ) : boolean {
2
+ const map = new Map < number , number > ( ) ;
3
+
4
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
5
+ if ( map . has ( nums [ i ] ) ) return true ;
6
+ map . set ( nums [ i ] , 1 ) ;
7
+ }
8
+ return false ;
9
+ }
Original file line number Diff line number Diff line change
1
+ function longestConsecutive ( nums : number [ ] ) : number {
2
+ const set = new Set < number > ( nums ) ;
3
+ let result = 0 ;
4
+
5
+ for ( const num of set ) {
6
+ if ( set . has ( num - 1 ) ) continue ;
7
+ let length = 1 ;
8
+ while ( set . has ( num + length ) ) length ++ ;
9
+ result = Math . max ( length , result ) ;
10
+ }
11
+
12
+ return result ;
13
+ }
Original file line number Diff line number Diff line change
1
+ function topKFrequent ( nums : number [ ] , k : number ) : number [ ] {
2
+ const map : Map < number , number > = new Map ( ) ;
3
+
4
+ nums . forEach ( ( val ) => {
5
+ if ( map . has ( val ) ) map . set ( val , map . get ( val ) ! ! + 1 ) ;
6
+ else map . set ( val , 1 ) ;
7
+ } ) ;
8
+
9
+ return Array . from ( map )
10
+ . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] )
11
+ . slice ( 0 , k )
12
+ . map ( ( item ) => item [ 0 ] ) ;
13
+ }
Original file line number Diff line number Diff line change
1
+ function twoSum ( nums : number [ ] , target : number ) : number [ ] {
2
+ const result : number [ ] = [ ] ;
3
+
4
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
5
+ for ( let j = i + 1 ; j < nums . length ; j ++ ) {
6
+ if ( nums [ i ] + nums [ j ] === target ) {
7
+ result . push ( i , j ) ;
8
+ }
9
+ }
10
+ }
11
+
12
+ return result ;
13
+ }
You can’t perform that action at this time.
0 commit comments