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