Skip to content

Commit 3c5e828

Browse files
committed
Longest Consecutive Sequence
1 parent e07436c commit 3c5e828

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""
2+
# Time Complexity: O(N)
3+
- lce_dict ์ƒ์„ฑ: N
4+
- N๊ฐœ์˜ key์— ๋Œ€ํ•˜์—ฌ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ’ ํ™•์ธ: N
5+
# Space Compelexity: O(k)
6+
- ์ค‘๋ณต๋˜์ง€ ์•Š์€ key k๊ฐœ ์ €์žฅ
7+
"""
8+
class Solution:
9+
def longestConsecutive(self, nums: List[int]) -> int:
10+
if not nums:
11+
return 0
12+
13+
lce_dict = {}
14+
for num in nums:
15+
lce_dict[num] = True
16+
17+
answer = 0
18+
for num in nums:
19+
cur_lce = 1
20+
if lce_dict.pop(num, None) is None:
21+
continue
22+
23+
down_num = num - 1
24+
while down_num in lce_dict:
25+
cur_lce += 1
26+
lce_dict.pop(down_num)
27+
down_num -= 1
28+
29+
up_num = num + 1
30+
while up_num in lce_dict:
31+
cur_lce += 1
32+
lce_dict.pop(up_num)
33+
up_num += 1
34+
35+
answer = answer if answer > cur_lce else cur_lce
36+
37+
return answer

0 commit comments

Comments
ย (0)