File tree Expand file tree Collapse file tree 4 files changed +64
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 4 files changed +64
-0
lines changed Original file line number Diff line number Diff line change 1+ function containsDuplicate ( nums : number [ ] ) : boolean {
2+ return new Set ( nums ) . size !== nums . length ;
3+ }
4+ /**
5+ * runtime: 24ms / Beats 27.12%
6+ * memory 74.42MB / Beats 55.98%
7+ */
Original file line number Diff line number Diff line change 1+ function longestConsecutive ( nums : number [ ] ) : number {
2+ if ( ! nums . length ) return 0 ;
3+
4+ nums . sort ( ( a , b ) => a - b ) ;
5+ let longest = 1 ;
6+ let currentStreak = 1 ;
7+
8+ for ( let i = 1 ; i < nums . length ; i ++ ) {
9+ if ( nums [ i ] === nums [ i - 1 ] ) continue ;
10+ if ( nums [ i ] === nums [ i - 1 ] + 1 ) {
11+ currentStreak ++ ;
12+ } else {
13+ longest = Math . max ( longest , currentStreak ) ;
14+ currentStreak = 1 ;
15+ }
16+ }
17+
18+ return Math . max ( longest , currentStreak ) ;
19+ }
20+
21+ /**
22+ * * Runtime: 37ms / 74.15%
23+ * * Memory: 67.88MB / 93.54%
24+ */
Original file line number Diff line number Diff line change 1+ function topKFrequent ( nums : number [ ] , k : number ) : number [ ] {
2+ const frequentMap = new Map < number , number > ( ) ;
3+
4+ for ( const num of nums ) {
5+ frequentMap . set ( num , ( frequentMap . get ( num ) ?? 0 ) + 1 ) ;
6+ }
7+
8+ const sorted = Array . from ( frequentMap . entries ( ) ) . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] ) ;
9+
10+ return sorted . slice ( 0 , k ) . map ( ( [ key ] ) => Number ( key ) ) ;
11+ }
12+
13+ /**
14+ * Runtime 9ms / 78.90%
15+ * Memory 60.130MB / 66.67%
16+ */
Original file line number Diff line number Diff line change 1+ function twoSum ( nums : number [ ] , target : number ) : number [ ] {
2+ const visited : { [ key : string ] : boolean } = { } ;
3+ for ( let i = 0 ; i < nums . length ; i ++ ) {
4+ const complement = target - nums [ i ] ;
5+ if ( visited [ complement ] ) {
6+ const complementIdx = nums . indexOf ( complement ) ;
7+ return [ i , complementIdx ] ;
8+ }
9+ visited [ nums [ i ] ] = true ;
10+ }
11+ return [ ] ;
12+ }
13+
14+ /**
15+ * runtime: O(n)
16+ * memory O(n)
17+ */
You can’t perform that action at this time.
0 commit comments