Skip to content

Commit c7312a0

Browse files
author
jinvicky
committed
longest consecutive sequence solution
1 parent 50e1fb5 commit c7312a0

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+
import java.util.HashSet;
2+
import java.util.Set;
3+
4+
// ์—ฐ์†์ ์ธ ์ˆซ์ž์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „, ๋‹ค์Œ ์ˆ˜๊ฐ€ ์ง‘ํ•ฉ์˜ ์ผ๋ถ€์ธ์ง€๋ฅผ ํŒŒ์•…ํ•ด์•ผ ํ•œ๋‹ค.
5+
// map, set ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐํšŒ ์„ฑ๋Šฅ์„ O(1)๋กœ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
6+
// ์–ด๋ ค์› ๋˜ ์ ์€ ์—ฐ์†์ ์ธ ์ˆซ์ž์˜ start๊ฐ€ ๋˜๋ƒ ์—ฌ๋ถ€ ์กฐ๊ฑด์„ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. while๋ฌธ์ด ์•ฝํ•ด์„œ length++ํ•˜๋Š” ๋กœ์ง์ด ํž˜๋“ค์—ˆ๋‹ค.
7+
// ๋ฌธ์ œ์˜ ์กฐ๊ฑด์€ ๋ฐฐ์—ด ๋‚ด์—์„œ์˜ ์—ฐ์†์ ์ธ ์ˆซ์ž์˜ ๊ธธ์ด์ด๊ธฐ ๋•Œ๋ฌธ์— while์„ ์‚ฌ์šฉํ•ด๋„ ์„ฑ๋Šฅ ์ด์Šˆ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.
8+
class Solution {
9+
public int longestConsecutive(int[] nums) {
10+
Set<Integer> set = new HashSet<>();
11+
12+
for (int n : nums) {
13+
set.add(n);
14+
}
15+
16+
int maxLength = 0;
17+
18+
for (int n : nums) {
19+
if (!set.contains(n - 1)) { // ๋‚ด ์ด์ „ ์ˆซ์ž๊ฐ€ ์ง‘ํ•ฉ์— ์—†๋‹ค == ๋‚ด๊ฐ€ ์ตœ์†Œ ์ˆซ์ž๋‹ค.
20+
int length = 1;
21+
22+
while (set.contains(n + length)) {
23+
length++;
24+
}
25+
26+
maxLength = Math.max(length, maxLength);
27+
}
28+
}
29+
30+
return maxLength;
31+
}
32+
}

0 commit comments

Comments
ย (0)