Skip to content

Commit 638fb42

Browse files
author
tanfanhua
committed
my merge
1 parent 692ee5c commit 638fb42

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

src/com/blankj/medium/_0056/Solution.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import com.blankj.structure.Interval;
44

5-
import java.util.ArrayList;
6-
import java.util.Comparator;
7-
import java.util.List;
5+
import java.util.*;
86

97
/**
108
* <pre>
@@ -44,5 +42,35 @@ public int compare(Interval o1, Interval o2) {
4442
public static void main(String[] args) {
4543
Solution solution = new Solution();
4644
Interval.print(solution.merge(Interval.createTestData("[1,3],[2,6],[8,10],[15,18]")));
45+
Interval.print(solution.myMergeOverlap(Interval.createTestData("[1,3],[2,6],[8,10],[15,18]")));
46+
Interval.print(solution.merge(Interval.createTestData("[1,3],[2,6],[8,15],[15,18]")));
47+
Interval.print(solution.myMergeOverlap(Interval.createTestData("[1,3],[2,6],[8,15],[15,18]")));
48+
49+
}
50+
public List<Interval> myMergeOverlap(List<Interval> intervals) {
51+
if (intervals == null || intervals.size() == 0) {
52+
return null;
53+
}
54+
Collections.sort(intervals, new Comparator<Interval>() {
55+
@Override
56+
public int compare(Interval o1, Interval o2) {
57+
return o1.start - o2.start;
58+
}
59+
});
60+
LinkedList<Interval> res = new LinkedList<>();
61+
for (Interval interval : intervals) {
62+
if (res.isEmpty()) {
63+
res.add(interval);
64+
} else {
65+
Interval lastInterval = res.getLast();
66+
if (lastInterval.end >= interval.start) {
67+
lastInterval.end = interval.end;
68+
} else {
69+
res.add(interval);
70+
}
71+
}
72+
}
73+
74+
return res;
4775
}
4876
}

0 commit comments

Comments
 (0)