File tree Expand file tree Collapse file tree 3 files changed +62
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 3 files changed +62
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {boolean }
4+ */
5+ const containsDuplicate = ( nums ) => {
6+ let uniqueNumSet = new Set ( nums ) ;
7+ return uniqueNumSet . size !== nums . length ;
8+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * House Robber ๋ฌธ์
3+ *
4+ * ์๊ฐ ๋ณต์ก๋: O(n)
5+ * ๊ณต๊ฐ ๋ณต์ก๋: O(1)
6+ *
7+ * ์ ๊ทผ ๋ฐฉ๋ฒ:
8+ * - Dynamic Programming์ ์ฌ์ฉํ์ฌ ๊ฐ ์์น์์์ ์ต๋ ๊ธ์ก์ ๊ณ์ฐ
9+ * - ํ์ฌ ์ง์ ํธ ๊ฒฝ์ฐ: ์ ์ ์ง๊น์ง์ ์ต๋๊ฐ + ํ์ฌ ์ง์ ๊ธ์ก
10+ * - ํ์ฌ ์ง์ ์ ํธ ๊ฒฝ์ฐ: ์ด์ ์ง๊น์ง์ ์ต๋๊ฐ
11+ * - ๋ ๊ฒฝ์ฐ ์ค ์ต๋๊ฐ์ ์ ํ
12+ */
13+ const rob = ( nums ) => {
14+ if ( nums . length === 1 ) return nums [ 0 ] ;
15+
16+ let prev2 = nums [ 0 ] ; // ์ ์ ์ง๊น์ง์ ์ต๋ ๊ธ์ก
17+ let prev1 = Math . max ( nums [ 0 ] , nums [ 1 ] ) ; // ์ด์ ์ง๊น์ง์ ์ต๋ ๊ธ์ก
18+
19+ for ( let i = 2 ; i < nums . length ; i ++ ) {
20+ const current = Math . max ( prev1 , prev2 + nums [ i ] ) ;
21+ prev2 = prev1 ;
22+ prev1 = current ;
23+ }
24+
25+ return prev1 ;
26+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @return {number }
4+ */
5+ const longestConsecutive = ( nums ) => {
6+ if ( nums . length === 0 ) return 0 ;
7+
8+ const numSet = new Set ( nums ) ;
9+ let maxLength = 0 ;
10+
11+ for ( const num of numSet ) {
12+ // ์ํ์ค ์์์ ๋ง ์ฒดํฌ
13+ if ( ! numSet . has ( num - 1 ) ) {
14+ let currentNum = num ;
15+ let currentLength = 1 ;
16+
17+ // ์ฐ์๋ ์ซ์ ์นด์ดํธ
18+ while ( numSet . has ( currentNum + 1 ) ) {
19+ currentNum ++ ;
20+ currentLength ++ ;
21+ }
22+
23+ maxLength = Math . max ( maxLength , currentLength ) ;
24+ }
25+ }
26+
27+ return maxLength ;
28+ } ;
You canโt perform that action at this time.
0 commit comments