Skip to content

Commit de8a7a0

Browse files
committed
Longest Consecutive Sequence (풀이 #1): 초안 제출
1 parent 51cb0c7 commit de8a7a0

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* 시간복잡도: O(n)
3+
* - set.has() => O(1)
4+
* - while() => 최악의 경우 O(n)
5+
* 공간복잡도: new Set() => O(n)
6+
*/
7+
const longestConsecutive = (nums) => {
8+
// 빈 배열일 때 0 리턴
9+
if (nums.length === 0) return 0;
10+
11+
// 중복 제거
12+
const set = new Set(nums);
13+
14+
// 연속되는 숫자의 길이를 넣을 변수 설정
15+
let longest = 0;
16+
17+
set.forEach((v) => {
18+
// 일단 연속되는 배열에서는 가장 최솟값을 찾음
19+
if (!set.has(v - 1)) {
20+
let cnt = 1;
21+
22+
// 연속되는 배열에서 가장 긴 배열을 저장
23+
while (set.has(v + cnt)) {
24+
cnt += 1;
25+
longest = longest < cnt ? cnt : longest;
26+
}
27+
}
28+
});
29+
30+
return longest;
31+
};

0 commit comments

Comments
 (0)