File tree Expand file tree Collapse file tree 5 files changed +102
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +102
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * ์
๋ ฅ ๋ฐฐ์ด ๋ด ๊ฐ ์ค๋ณต ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ ํจ์
3+ * @param {number[] } nums
4+ * @return {boolean }
5+ */
6+ const containsDuplicate = function ( nums ) {
7+ const set = new Set ( ) ;
8+
9+ for ( const num of nums ) {
10+ if ( set . has ( num ) ) return true ;
11+ else set . add ( num ) ;
12+ }
13+
14+ return false ;
15+ } ;
16+
17+ // ์๊ฐ๋ณต์ก๋: O(n)
18+ // ๊ณต๊ฐ๋ณต์ก๋: O(n)
Original file line number Diff line number Diff line change 1+ /**
2+ * ์ฃผ์ด์ง ๋ฐฐ์ด์์ ์ธ์ ํ์ง ์์ ์ซ์๋ค์ ์ต๋ ํฉ์ ๋ฐํํ๋ ํจ์
3+ * @param {number[] } nums
4+ * @return {number }
5+ */
6+ const rob = function ( nums ) {
7+ const dp = [ ] ;
8+
9+ nums . forEach ( ( num , idx ) => {
10+ dp [ idx ] = Math . max ( ( dp [ idx - 2 ] || 0 ) + num , dp [ idx - 1 ] || 0 ) ;
11+ } ) ;
12+
13+ return dp [ dp . length - 1 ] ;
14+ } ;
15+
16+ // ์๊ฐ๋ณต์ก๋: O(n);
17+ // ๊ณต๊ฐ๋ณต์ก๋: O(n);
Original file line number Diff line number Diff line change 1+ /**
2+ * ์ฃผ์ด์ง ๋ฐฐ์ด์ ์ซ์๋ค๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ๊ธด ์ฐ์ ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ ํจ์
3+ * @param {number[] } nums
4+ * @return {number }
5+ */
6+ const longestConsecutive = function ( nums ) {
7+ const sorted = Array . from ( new Set ( nums ) ) . sort ( ( a , b ) => Number ( a ) - Number ( b ) ) ;
8+
9+ let maxLength = 0 ;
10+ let currentSequenceLength = 0 ;
11+
12+ for ( let i = 0 ; i < sorted . length ; i ++ ) {
13+ if ( i === 0 ) {
14+ maxLength = 1 ;
15+ currentSequenceLength = 1 ;
16+ continue ;
17+ }
18+
19+ if ( sorted [ i ] === sorted [ i - 1 ] + 1 ) {
20+ currentSequenceLength += 1 ;
21+ } else {
22+ currentSequenceLength = 1 ;
23+ }
24+
25+ maxLength = Math . max ( maxLength , currentSequenceLength ) ;
26+ }
27+
28+ return maxLength ;
29+ } ;
30+
31+ // ์๊ฐ๋ณต์ก๋: O(n)
32+ // ๊ณต๊ฐ๋ณต์ก๋: O(n)
Original file line number Diff line number Diff line change 1+ /**
2+ * ์ฃผ์ด์ง ๋ฐฐ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ํด์๋ ์ซ์ k๊ฐ๋ฅผ ๋ฐํํ๋ ํจ์
3+ * @param {number[] } nums
4+ * @param {number } k
5+ * @return {number[] }
6+ */
7+ const topKFrequent = function ( nums , k ) {
8+ const count = { } ;
9+ nums . forEach ( ( num ) => {
10+ count [ num ] = count [ num ] + 1 || 1 ;
11+ } ) ;
12+ return Object . keys ( count ) . sort ( ( a , b ) => count [ b ] - count [ a ] ) . slice ( 0 , k ) . map ( Number ) ;
13+ } ;
14+
15+ // ์๊ฐ๋ณต์ก๋: O(n)
16+ // ๊ณต๊ฐ๋ณต์ก๋: O(n)
Original file line number Diff line number Diff line change 1+ /**
2+ * ์ฃผ์ด์ง ๋ฐฐ์ด ์ค ๋ ์ซ์์ ํฉ์ด ํ๊ฒ์ผ ๋, ๋ ์ซ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ ํจ์
3+ * @param {number[] } nums
4+ * @param {number } target
5+ * @return {number[] }
6+ */
7+ const twoSum = function ( nums , target ) {
8+ const map = new Map ( ) ;
9+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10+ const diff = target - nums [ i ] ;
11+ if ( map . has ( diff ) ) {
12+ return [ map . get ( diff ) , i ] ;
13+ }
14+ map . set ( nums [ i ] , i ) ;
15+ }
16+ } ;
17+
18+ // ์๊ฐ๋ณต์ก๋: O(n)
19+ // ๊ณต๊ฐ๋ณต์ก๋: O(n)
You canโt perform that action at this time.
0 commit comments