Skip to content

Commit de9ff87

Browse files
committed
feat: longest consecutive sequence
1 parent d0956f1 commit de9ff87

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* μ‹œκ°„ λ³΅μž‘λ„:
3+
* set의 μš”μ†Œ 쀑 μ—°μ†ν•˜λŠ” μ‹œν€€μŠ€μ˜ 첫번째 숫자일 λ•Œλ§Œ
4+
* while 루프λ₯Ό μ‹€ν–‰
5+
* λ”°λΌμ„œ μš”μ†Œλ‹Ή μ΅œλŒ€ 1회 순회
6+
* 즉, μ‹œκ°„ λ³΅μž‘λ„λŠ” O(n)
7+
* 곡간 λ³΅μž‘λ„:
8+
* set은 쀑볡이 없을 경우 μ΅œλŒ€ O(n)λ₯Ό 차지함
9+
* 즉, 곡간 λ³΅μž‘λ„λŠ” O(n)
10+
*/
11+
/**
12+
* @param {number[]} nums
13+
* @return {number}
14+
*/
15+
var longestConsecutive = function (nums) {
16+
const set = new Set(nums);
17+
let res = 0;
18+
for (const n of set) {
19+
let seqLen = 0, target = n;
20+
const isSeqStart = !set.has(target - 1);
21+
if (isSeqStart) {
22+
while (set.has(target)) {
23+
target++;
24+
seqLen++;
25+
}
26+
}
27+
res = Math.max(seqLen, res);
28+
}
29+
return res;
30+
};

0 commit comments

Comments
Β (0)