Skip to content

Commit 29e30d2

Browse files
committed
feat: Upload longest-consecutive-sequence solution (typescript)
1 parent 226e7b3 commit 29e30d2

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* Source: https://leetcode.com/problems/longest-consecutive-sequence/
3+
* ํ’€์ด๋ฐฉ๋ฒ•: ์ •๋ ฌ ํ›„ ์ˆœํšŒ๋ฅผ ํ†ตํ•ด ์—ฐ์†๋œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธ
4+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(nlogn)
5+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
6+
*
7+
* ์ƒ๊ฐ๋‚˜๋Š” ํ’€์ด๋ฐฉ๋ฒ•
8+
*/
9+
10+
function longestConsecutive(nums: number[]): number {
11+
if (nums.length === 0) return 0;
12+
const sorted = nums.sort((a, b) => a - b);
13+
let prev = sorted[0];
14+
let result = 1;
15+
let candiResult = 1;
16+
17+
for (let current of sorted) {
18+
if (prev === current) continue;
19+
if (current === prev + 1) {
20+
candiResult += 1;
21+
} else {
22+
if (candiResult > result) {
23+
result = candiResult;
24+
}
25+
candiResult = 1;
26+
}
27+
prev = current;
28+
}
29+
30+
if (candiResult > result) result = candiResult;
31+
return result;
32+
}

0 commit comments

Comments
ย (0)