File tree Expand file tree Collapse file tree 4 files changed +56
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 4 files changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+ function containsDuplicate ( nums : number [ ] ) : boolean {
2+ const sets = new Set < number > ( nums ) ;
3+ return sets . size < nums . length ;
4+ }
Original file line number Diff line number Diff line change 1+ function longestConsecutive ( nums : number [ ] ) : number {
2+ const st = new Set ( nums ) ;
3+
4+ let mx = 0 ;
5+ for ( const n of st ) {
6+ if ( st . has ( n - 1 ) ) continue ;
7+
8+ let len = 1 ;
9+ while ( st . has ( n + len ) ) {
10+ len ++ ;
11+ }
12+
13+ mx = Math . max ( mx , len ) ;
14+ }
15+
16+ return mx ;
17+ }
Original file line number Diff line number Diff line change 1+ function topKFrequent ( nums : number [ ] , k : number ) : number [ ] {
2+ const mp : { [ k : number ] : number } = { } ;
3+ nums . forEach ( ( n ) => ( typeof mp [ n ] === "number" ? mp [ n ] ++ : ( mp [ n ] = 1 ) ) ) ;
4+
5+ const unq_nums = [ ...new Set ( nums ) ] ;
6+ unq_nums . sort ( ( a , b ) => {
7+ if ( mp [ a ] === mp [ b ] ) {
8+ return 0 ;
9+ }
10+
11+ return mp [ a ] < mp [ b ] ? 1 : - 1 ;
12+ } ) ;
13+
14+ return unq_nums . slice ( 0 , k ) ;
15+ }
Original file line number Diff line number Diff line change 1+ function twoSum ( nums : number [ ] , target : number ) : number [ ] {
2+ const sz = nums . length ;
3+ let l = 0 ,
4+ r = 1 ,
5+ sm = nums [ 0 ] + nums [ 1 ] ;
6+
7+ while ( l <= sz - 2 && r <= sz - 1 ) {
8+ sm = nums [ l ] + nums [ r ] ;
9+
10+ if ( sm === target ) {
11+ return [ l , r ] ;
12+ }
13+
14+ if ( l === r - 1 ) {
15+ ( r ++ , ( l = 0 ) ) ;
16+ } else {
17+ l ++ ;
18+ }
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments