File tree Expand file tree Collapse file tree 5 files changed +115
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +115
-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+ const numArrLength = nums . length ;
7+ const numSetSize = new Set ( nums ) . size ;
8+
9+ return numArrLength !== numSetSize ;
10+ } ;
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+ let maxMoneyAtPrevHouse = 0 ;
7+ let maxMoneyAtTwoHousesBack = 0 ;
8+
9+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10+ let currentMax = Math . max (
11+ nums [ i ] + maxMoneyAtTwoHousesBack ,
12+ maxMoneyAtPrevHouse
13+ ) ;
14+
15+ maxMoneyAtTwoHousesBack = maxMoneyAtPrevHouse ;
16+ maxMoneyAtPrevHouse = currentMax ;
17+ }
18+
19+ return maxMoneyAtPrevHouse ;
20+ } ;
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+ let result = 1 ;
7+ let maxLength = 1 ;
8+
9+ if ( nums . length === 0 ) return 0 ;
10+
11+ const sortedNums = nums . sort ( ( a , b ) => a - b ) ;
12+
13+ for ( let i = 1 ; i < sortedNums . length ; i ++ ) {
14+ const prevNum = sortedNums [ i - 1 ] ;
15+ const currentNum = sortedNums [ i ] ;
16+
17+ const diff = currentNum - prevNum ;
18+
19+ if ( diff === 1 ) {
20+ result += 1 ;
21+
22+ if ( maxLength < result ) {
23+ maxLength = result ;
24+ }
25+ } else if ( diff === 0 ) {
26+ continue ;
27+ } else {
28+ result = 1 ;
29+ }
30+ }
31+
32+ return maxLength ;
33+ } ;
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 result = [ ] ;
8+ const numMap = new Map ( ) ;
9+
10+ for ( let i = 0 ; i < nums . length ; i ++ ) {
11+ const currentValue = numMap . get ( nums [ i ] ) ;
12+
13+ if ( currentValue ) {
14+ numMap . set ( nums [ i ] , currentValue + 1 ) ;
15+ } else {
16+ numMap . set ( nums [ i ] , 1 ) ;
17+ }
18+ }
19+
20+ const mapToArr = [ ...numMap . entries ( ) ] ;
21+
22+ mapToArr . sort ( ( a , b ) => {
23+ if ( a [ 1 ] < b [ 1 ] ) return 1 ;
24+ if ( a [ 1 ] > b [ 1 ] ) return - 1 ;
25+ return 0 ;
26+ } ) ;
27+
28+ for ( let i = 0 ; i < k ; i ++ ) {
29+ result . push ( mapToArr [ i ] [ 0 ] ) ;
30+ }
31+
32+ return result ;
33+ } ;
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 numMap = new Map ( ) ;
8+
9+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10+ const firstNum = nums [ i ] ;
11+ const secondNum = target - nums [ i ] ;
12+
13+ if ( numMap . has ( secondNum ) ) {
14+ return [ numMap . get ( secondNum ) , i ] ;
15+ }
16+
17+ numMap . set ( firstNum , i ) ;
18+ }
19+ } ;
You can’t perform that action at this time.
0 commit comments