File tree Expand file tree Collapse file tree 4 files changed +82
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 4 files changed +82
-0
lines changed Original file line number Diff line number Diff line change 1+ // nums에 중복이 있는 지 확인하는 것
2+ // array써서 시간 통과 못했다가 Set 객체로 변경해서 통과
3+ function containsDuplicate ( nums : number [ ] ) : boolean {
4+ const numSet = new Set ( ) ;
5+
6+ for ( let num of nums ) {
7+ if ( numSet . has ( num ) ) {
8+ return true ;
9+ } else {
10+ numSet . add ( num ) ;
11+ }
12+ }
13+
14+ return false ;
15+ } ;
Original file line number Diff line number Diff line change 1+ function longestConsecutive ( nums : number [ ] ) : number {
2+ const sortedNums = [ ...new Set ( nums . sort ( ( a , b ) => a - b ) ) ] ;
3+ const numSet = new Set ( ) ;
4+
5+ let dummy : number [ ] = [ ] ;
6+
7+ for ( let i : number = 0 ; i < sortedNums . length ; i ++ ) {
8+ const isConsecutiveSequence = sortedNums [ i + 1 ] - sortedNums [ i ] === 1 ;
9+ const num = sortedNums [ i ] ;
10+
11+ if ( ! isConsecutiveSequence ) {
12+ dummy . push ( num )
13+ numSet . add ( dummy . length ) ;
14+ dummy = [ ] ;
15+ } else {
16+ dummy . push ( num ) ;
17+ }
18+ }
19+
20+ numSet . add ( dummy . length ) ;
21+
22+ const result = [ ...numSet ] . sort ( ( a , b ) => Number ( b ) - Number ( a ) ) as number [ ] ;
23+ return result [ 0 ] || 0 ;
24+ }
Original file line number Diff line number Diff line change 1+ function topKFrequent ( nums : number [ ] , k : number ) : number [ ] {
2+ const numMap = new Map ( ) ;
3+
4+ for ( let num of nums ) {
5+ if ( ! numMap . has ( num ) ) {
6+ numMap . set ( num , 1 ) ;
7+ } else {
8+ const count = Number ( numMap . get ( num ) ) || 0 ;
9+ numMap . set ( num , count + 1 ) ;
10+ }
11+ }
12+
13+ const result = [ ...numMap ] . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] ) . map ( ( num ) => num [ 0 ] ) . slice ( 0 , k ) ;
14+
15+
16+ return result ;
17+ } ;
Original file line number Diff line number Diff line change 1+ // 1차 시도
2+ // function twoSum(nums: number[], target: number): number[] {
3+ // for(const index in nums) {
4+ // for(const index2 in nums) {
5+ // if (index !== index2) {
6+ // if(target === nums[index] + nums[index2]) {
7+ // return [Number(index), Number(index2)]
8+ // }
9+ // }
10+ // }
11+ // }
12+ // };
13+
14+ // 2차 시도
15+ function twoSum ( nums : number [ ] , target : number ) : number [ ] {
16+ for ( const index in nums ) {
17+ for ( let index2 = Number ( index ) + 1 ; index2 < nums . length ; index2 ++ ) {
18+ if ( target === nums [ index ] + nums [ index2 ] ) {
19+ return [ Number ( index ) , Number ( index2 ) ]
20+ }
21+ }
22+
23+ }
24+
25+ return [ ] ;
26+ } ;
You can’t perform that action at this time.
0 commit comments