Skip to content

Commit 0a0bab9

Browse files
committed
longest consecutive sequence solution
1 parent 600b87a commit 0a0bab9

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function(nums) {
6+
// ์ฒซ ๋ฒˆ์งธ ์ •๋ ฌ์„ ํ•œ๋‹ค.
7+
if (nums.length === 0) {
8+
return 0;
9+
}
10+
11+
nums.sort((a, b) => a - b); // ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
12+
console.log(nums);
13+
14+
// ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ 1์”ฉ ๊ณ„์†ํ•ด์„œ ์ฆ๊ฐ€ํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ๋Š”๋‹ค.
15+
let longest = 0;
16+
let length = 1;
17+
18+
for (let i=0; i<nums.length-1; i++) {
19+
if (nums[i] === nums[i+1]) {
20+
continue;
21+
}
22+
// ์—ฐ์†ํ•ด์„œ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ๊ตฌ๊ฐ„ ์ฐพ๊ธฐ
23+
if (nums[i+1] - nums[i] === 1) {
24+
length += 1;
25+
} else {
26+
longest = Math.max(longest, length);
27+
length = 1;
28+
}
29+
}
30+
return Math.max(longest, length);
31+
};
32+
33+
// ์‹œ๊ฐ„๋ณต์žก๋„์™€ ๊ณต๊ฐ„๋ณต์žก๋„
34+
// ์‹œ๊ฐ„๋ณต์žก๋„: ์ •๋ ฌ ์‚ฌ์šฉ(O(nlogn)) + for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด ํƒ์ƒ‰(O(n)) = O(nlogn)
35+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(1)

0 commit comments

Comments
ย (0)