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