Skip to content

Commit 6bf8a5e

Browse files
committed
Solution Week11: merge-intervals
1 parent 9d7f9ed commit 6bf8a5e

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

merge-intervals/juhui-jeong.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* 시간 복잡도: O(nlogn)
3+
* 공간 복잡도: O(n)
4+
*/
5+
class Solution {
6+
public int[][] merge(int[][] intervals) {
7+
Arrays.sort(intervals, (a,b) -> {
8+
if (a[0] != b[0]) return Integer.compare(a[0], b[0]);
9+
return Integer.compare(a[1], b[1]);
10+
});
11+
12+
List<int[]> merged = new ArrayList<>();
13+
int[] cur = intervals[0];
14+
merged.add(cur);
15+
16+
for (int i = 1; i < intervals.length; i++) {
17+
int[] next = intervals[i];
18+
19+
if(cur[1] >= next[0]) {
20+
cur[1] = Math.max(cur[1], next[1]);
21+
} else {
22+
cur = next;
23+
merged.add(cur);
24+
}
25+
}
26+
return merged.toArray(new int[merged.size()][]);
27+
}
28+
}

0 commit comments

Comments
 (0)