File tree Expand file tree Collapse file tree 4 files changed +111
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 4 files changed +111
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์๊ฐ ๋ณต์ก๋:
3
+ * ๋งต์์ nums[i]๋ฅผ ์ฐพ๊ฑฐ๋ ์ฝ์
ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ O(1) * n(nums.length)
4
+ * ์ฆ, O(n)
5
+ * ๊ณต๊ฐ ๋ณต์ก๋:
6
+ * ์ต๋ map์ ํฌ๊ธฐ๋ nums.length๋งํผ
7
+ * ์ฆ, O(n)
8
+ */
9
+ /**
10
+ * @param {number[] } nums
11
+ * @return {boolean }
12
+ */
13
+ var containsDuplicate = function ( nums ) {
14
+ const map = new Map ( ) ;
15
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
16
+ if ( ! map . has ( nums [ i ] ) ) {
17
+ map . set ( nums [ i ] , i ) ;
18
+ } else {
19
+ return true ;
20
+ }
21
+ }
22
+ return false ;
23
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์๊ฐ ๋ณต์ก๋:
3
+ * set์ ์์ ์ค ์ฐ์ํ๋ ์ํ์ค์ ์ฒซ๋ฒ์งธ ์ซ์์ผ ๋๋ง
4
+ * while ๋ฃจํ๋ฅผ ์คํ
5
+ * ๋ฐ๋ผ์ ์์๋น ์ต๋ 1ํ ์ํ
6
+ * ์ฆ, ์๊ฐ ๋ณต์ก๋๋ O(n)
7
+ * ๊ณต๊ฐ ๋ณต์ก๋:
8
+ * set์ ์ค๋ณต์ด ์์ ๊ฒฝ์ฐ ์ต๋ O(n)๋ฅผ ์ฐจ์งํจ
9
+ * ์ฆ, ๊ณต๊ฐ ๋ณต์ก๋๋ O(n)
10
+ */
11
+ /**
12
+ * @param {number[] } nums
13
+ * @return {number }
14
+ */
15
+ var longestConsecutive = function ( nums ) {
16
+ const set = new Set ( nums ) ;
17
+ let res = 0 ;
18
+ for ( const n of set ) {
19
+ let seqLen = 0 , target = n ;
20
+ const isSeqStart = ! set . has ( target - 1 ) ;
21
+ if ( isSeqStart ) {
22
+ while ( set . has ( target ) ) {
23
+ target ++ ;
24
+ seqLen ++ ;
25
+ }
26
+ }
27
+ res = Math . max ( seqLen , res ) ;
28
+ }
29
+ return res ;
30
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์๊ฐ ๋ณต์ก๋:
3
+ * nums.length๋งํผ์ ๋ฐฐ์ด์ ์ ๋ ฌํด์ผ ํ๋ฏ๋ก
4
+ * ์ฆ, O(n * log n)
5
+ * ๊ณต๊ฐ ๋ณต์ก๋:
6
+ * ์ต๋ nums.length๋งํผ์ map ์์ฑ
7
+ * ์ฆ, O(n)
8
+ */
9
+ /**
10
+ * @param {number[] } nums
11
+ * @param {number } k
12
+ * @return {number[] }
13
+ */
14
+ var topKFrequent = function ( nums , k ) {
15
+ const map = new Map ( ) ;
16
+ for ( const n of nums ) {
17
+ if ( ! map . has ( n ) ) {
18
+ map . set ( n , 0 ) ;
19
+ }
20
+ map . set ( n , map . get ( n ) + 1 )
21
+ }
22
+ const sorted = Array . from ( map ) . sort ( ( a , b ) => b [ 1 ] - a [ 1 ] ) ;
23
+ return sorted . slice ( 0 , k ) . map ( e => e [ 0 ] )
24
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์๊ฐ ๋ณต์ก๋:
3
+ * s.length๋งํผ ํ์. ์ฆ, O(n)
4
+ * ๊ณต๊ฐ ๋ณต์ก๋:
5
+ * ๋ณ์์ ํจ์๋ง ์ ์ฅ. ์ฆ, O(1)
6
+ */
7
+
8
+ /**
9
+ * @param {string } s
10
+ * @return {boolean }
11
+ */
12
+ var isPalindrome = function ( s ) {
13
+ const isAlphaNumeric = ( v ) => {
14
+ return ( / ^ [ a - z 0 - 9 ] $ / i) . test ( v ) ;
15
+ } ;
16
+
17
+ let l = 0 ;
18
+ let r = s . length - 1 ;
19
+ while ( l < r ) {
20
+ while ( ! isAlphaNumeric ( s [ l ] ) && l < r ) {
21
+ l ++ ;
22
+ }
23
+ while ( ! isAlphaNumeric ( s [ r ] ) && l < r ) {
24
+ r -- ;
25
+ }
26
+
27
+ if ( s [ l ] . toLowerCase ( ) !== s [ r ] . toLowerCase ( ) ) {
28
+ return false ;
29
+ }
30
+ l ++ ;
31
+ r -- ;
32
+ }
33
+ return true ;
34
+ } ;
You canโt perform that action at this time.
0 commit comments