https://leetcode.com/problems/merge-intervals/
class Solution {
public List<Interval> merge(List<Interval> intervals) {
Collections.sort(intervals, new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
return o1.start - o2.start;
}
});
List<Interval> result = new ArrayList<>();
for (int i = 0; i < intervals.size(); i++) {
if (result.isEmpty()) {
// 如果是空的,加入列表
result.add(intervals.get(i));
} else {
// 如果不是空的,取出最後一個
Interval lastOne = result.get(result.size() - 1);
if (lastOne.end < intervals.get(i).start) {
// 最後一個與當前沒有交集,加入
result.add(intervals.get(i));
} else {
// 有交集,那麼將最後一個的end改爲兩個中的最大值
lastOne.end = Math.max(intervals.get(i).end, lastOne.end);
}
}
}
return result;
}
}