Skip to content

Commit 23cccab

Browse files
committed
feat: longest-consecutive-seq ํ’€์ด
1 parent be216c9 commit 23cccab

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import java.util.Arrays;
2+
3+
class Solution {
4+
/**
5+
* Runtime: 23 ms (Beats 80.31%)
6+
* Memory: 77.33 (Beats 9.66%)
7+
* Space Complexity: O(N)
8+
* - ์›์†Œ ๋ฐฐ์—ด ์ •๋ ฌ์€ ๋“€์–ผ ํ”ผ๋ด‡ sort => O(logN)
9+
* > O(N) + O(logN) ~= O(N)
10+
* Time Complexity: O(NlogN)
11+
* - ๋“€์–ผ ํ”ผ๋ด‡ sort๋ฅผ ์ด์šฉํ•œ ์ •๋ ฌ => O(NlogN)
12+
* - ๋ฐฐ์—ด์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์กฐํšŒ, ์ด์ „ ๊ฐ’๊ณผ ๋น„๊ต => O(N)*O(1)
13+
* > O(NlogN) + O(N) ~= O(NlogN)
14+
*/
15+
public int longestConsecutive(int[] nums) {
16+
Arrays.sort(nums);
17+
18+
if (nums.length == 0) {
19+
return 0;
20+
}
21+
int ans = 1;
22+
int seqLgth = 1;
23+
for (int i = 1; i < nums.length; i++) {
24+
// ๋ฐ”๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ฐ”๋กœ ์ด์ „ ์š”์†Œ ๋ณด๋‹ค 1์ด ๋” ์ปค์•ผํ•จ.
25+
if (nums[i - 1] < nums[i] && nums[i] - nums[i - 1] == 1) {
26+
nums[i - 1] = nums[i];
27+
seqLgth++;
28+
ans = Integer.max(ans, seqLgth); // ํ•ญ์ƒ ans ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ
29+
} else if (nums[i - 1] < nums[i] && nums[i] - nums[i - 1] > 1) {
30+
// ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ
31+
seqLgth = 1;
32+
}
33+
}
34+
return ans;
35+
}
36+
}

0 commit comments

Comments
ย (0)