File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You canโt perform that action at this time.
0 commit comments