File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * TC: O(N)
3+ * SC: O(N)
4+ * nums์ ์ซ์์ ์ ๊ทผํ๋ ํ์๋ 2๋ฒ์์ N๋งํผ, 4๋ฒ์์ ์ต๋ N๋งํผ ์
๋๋ค.
5+ * ์ฆ, 2N๋ฒ ๋งํผ nums์ ์ซ์์ ์ ๊ทผํฉ๋๋ค.
6+ */
7+
8+ /**
9+ * @param {number[] } nums
10+ * @return {number }
11+ */
12+ var longestConsecutive = function ( nums ) {
13+ let maxCount = 0 ;
14+ const obj = { } ;
15+
16+ // 1. ์ซ์์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํค๋ก ์ ๊ทผํ๊ธฐ ์ํด ์ ์ฅ
17+ for ( const num of nums ) {
18+ obj [ num ] = true ;
19+ }
20+
21+ // 2. ์์์ ๋ค์ ์ฐพ๊ธฐ ์ํด ์ํ
22+ for ( const num of nums ) {
23+ // 3. ์ฐ์์ ์ธ ๋ฐฐ์ด์ ์์์ ์ธ์ง ํ์ธ
24+ if ( obj [ num - 1 ] ) {
25+ continue ;
26+ }
27+
28+ // 4. ์ฐ์์ ์ธ ๋ฐฐ์ด์ ์์์ ๋ถํฐ ๋์ ๊น์ง ์ํ
29+ let count = 1 ;
30+ let next = num + 1 ;
31+ while ( obj [ next ] ) {
32+ count += 1 ;
33+ next += 1 ;
34+ }
35+
36+ // 5. ๊ฐ์ฅ ๊ธด ๋ฐฐ์ด์ ๊ธธ์ด ๊ฐฑ์
37+ maxCount = Math . max ( maxCount , count ) ;
38+ }
39+
40+ return maxCount ;
41+ } ;
You canโt perform that action at this time.
0 commit comments