File tree Expand file tree Collapse file tree 5 files changed +88
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 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