File tree 5 files changed +88
-0
lines changed
longest-consecutive-sequence
5 files changed +88
-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
+ return nums . length !== new Set ( [ ...nums ] ) . size
7
+ } ;
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
+ if ( nums . length === 0 ) return 0 ;
7
+ if ( nums . length === 1 ) return nums [ 0 ] ;
8
+
9
+ const dp = new Array ( nums . length ) ;
10
+
11
+ dp [ 0 ] = nums [ 0 ] ;
12
+ dp [ 1 ] = Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
13
+
14
+ for ( let i = 2 ; i < nums . length ; i ++ ) {
15
+ dp [ i ] = Math . max ( nums [ i ] + dp [ i - 2 ] , dp [ i - 1 ] ) ;
16
+ }
17
+
18
+ return dp [ nums . length - 1 ] ;
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
+ const numSet = new Set ( nums ) ;
7
+ let maxLength = 0 ;
8
+
9
+ for ( const num of nums ) {
10
+ if ( ! numSet . has ( num - 1 ) ) {
11
+ let currentNum = num ;
12
+ let currentLength = 1 ;
13
+
14
+ while ( numSet . has ( currentNum + 1 ) ) {
15
+ currentNum ++ ;
16
+ currentLength ++ ;
17
+ }
18
+ maxLength = Math . max ( maxLength , currentLength ) ;
19
+ }
20
+ }
21
+
22
+ return maxLength ;
23
+ } ;
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
+ const map = new Map ( )
8
+
9
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10
+ if ( map . has ( nums [ i ] ) ) {
11
+ const prevVal = map . get ( nums [ i ] )
12
+ map . set ( nums [ i ] , prevVal + 1 )
13
+ } else {
14
+ map . set ( nums [ i ] , 1 )
15
+ }
16
+ }
17
+
18
+ const result = [ ...map . entries ( ) ] . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] ) . slice ( 0 , k ) . map ( ( item ) => {
19
+ return item [ 0 ]
20
+ } )
21
+ return result
22
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @param {number } target
4
+ * @return {number[] }
5
+ */
6
+ var twoSum = function ( nums , target ) {
7
+ const map = new Map ( )
8
+
9
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10
+ const needNum = target - nums [ i ]
11
+ if ( map . has ( needNum ) ) {
12
+ return [ i , map . get ( needNum ) ]
13
+ }
14
+
15
+ map . set ( nums [ i ] , i )
16
+ }
17
+ } ;
You can’t perform that action at this time.
0 commit comments