-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetCode0056.java
More file actions
38 lines (31 loc) · 1.17 KB
/
Copy pathLeetCode0056.java
File metadata and controls
38 lines (31 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* Merge Intervals
* Example1:
* Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
* Output: [[1,6],[8,10],[15,18]]
* Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
* */
import java.util.Arrays;
public class LeetCode0056 {
public static void main(String args[]){
int[][] intervals = {{2,6},{1,3},{8,10},{15,18}};
int[][] res = merge(intervals);
for(int i = 0; i < res.length; i ++)
System.out.println(Arrays.toString(res[i]));
}
public static int[][] merge(int[][] intervals) {
if (intervals.length == 0)
return intervals;
// 按数组的第一个值从小到大排列
Arrays.sort(intervals, (int[] n1, int[] n2) -> n1[0]-n2[0]);
int index = 0;
for (int i = 1; i < intervals.length; i++) {
if (intervals[index][1] >= intervals[i][0]) {
if (intervals[index][1] < intervals[i][1])
intervals[index][1] = intervals[i][1];
} else {
intervals[++index] = intervals[i];
}
}
return Arrays.copyOf(intervals, index+1);
}
}