Skip to content

Commit 896931f

Browse files
committed
longestConsecutive solution
1 parent 64589d3 commit 896931f

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// nums ์—์„œ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ๊ฐ€์žฅ ๊ธธ๊ฒŒ ์ด์„ ์ˆ˜ ์žˆ๋Š” ์—ฐ์†๋œ ์ˆซ์ž์˜ ์นด์šดํŠธ
2+
// Constraints : Time complexity O(n)
3+
4+
// 1๋ฒˆ์งธ ์‹œ๋„
5+
/*
6+
1. O(n)์ด ๋˜๋„๋ก ์ •๋ ฌํ•œ๋‹ค.
7+
-> ์–ด์ฐจํ”ผ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n)์ด ๋ ๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์—, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ณด๋‹ค ๋นจ๋ผ๋„ ๋œ๋‹ค.
8+
-> ๊ทผ๋ฐ ๋‹ค์‹œ๋ณด๋‹ˆ nums ์™€ nums[i]์˜ ๊ธธ์ด๊ฐ€ -10^9 ~ 10^9 ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ๋กœ ํ‘ธ๋Š”๊ฒŒ ๋งž์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.
9+
2. ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋Œ๋ฉด์„œ ์ด์–ด์งˆ ๋•Œ ์นด์šดํŠธ๋ฅผ ํ•œ๋‹ค.
10+
3. ์ˆซ์ž๊ฐ€ ๋‹ฌ๋ผ์งˆ ๋•Œ ์นด์šดํŠธ๋ฅผ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ด์ „ ๊ฐ’๋ณด๋‹ค ๋†’์•„์งˆ ๋•Œ๋งˆ๋‹ค max ๋ฅผ ๊ฐฑ์‹ 
11+
4. ์ตœ์ข… max ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
12+
*/
13+
14+
// 2๋ฒˆ์งธ ์‹œ๋„
15+
/*
16+
1. nums ๋ฐฐ์—ด์„ set์œผ๋กœ ๋งŒ๋“ ๋‹ค.
17+
2. set์—์„œ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ์ˆœํšŒํ•œ๋‹ค.
18+
3. ์—ฌ๊ธฐ์„œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜์ง€..? (๋ง‰ํ˜€์„œ ai ์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•จ.)
19+
*/
20+
21+
function longestConsecutive(nums: number[]): number {
22+
const numSet = new Set(nums);
23+
let max = 0;
24+
for (const num of numSet) {
25+
if (!numSet.has(num - 1)) {
26+
let curNum = num;
27+
let curLen = 1;
28+
29+
while (numSet.has(curNum + 1)) {
30+
curNum++;
31+
curLen++;
32+
}
33+
34+
max = Math.max(max, curLen);
35+
}
36+
}
37+
38+
return max;
39+
}

0 commit comments

Comments
ย (0)