Skip to content

Instantly share code, notes, and snippets.

@reyou
Created May 24, 2018 01:37
Show Gist options
  • Save reyou/6cc01c49dd79508b4e168b05de0710e8 to your computer and use it in GitHub Desktop.
Save reyou/6cc01c49dd79508b4e168b05de0710e8 to your computer and use it in GitHub Desktop.
package com.company;
import java.util.*;
class Interval {
public int start;
public int end;
public Interval(int _start, int _end) {
start = _start;
end = _end;
}
}
public class MergeOverlappingIntervals {
public static void main(String args[]) {
MergeOverlappingIntervals mergeOverlappingIntervals = new MergeOverlappingIntervals();
List<Interval> intervals = new ArrayList<>();
intervals.add(new Interval(6,8));
intervals.add(new Interval(1,9));
intervals.add(new Interval(2,4));
intervals.add(new Interval(4,7));
List<Interval> merge = mergeOverlappingIntervals.merge(intervals);
for(Interval item: merge){
System.out.println(item.start + " " + item.end);
}
}
public List<Interval> merge(List<Interval> intervals) {
Collections.sort(intervals, new Comparator<Interval>() {
@Override
public int compare(Interval obj0, Interval obj1) {
return obj0.start - obj1.start;
}
});
List<Interval> ret = new ArrayList<>();
Interval prev = null;
for (Interval inter : intervals) {
if (prev == null || inter.start > prev.end) {
ret.add(inter);
prev = inter;
} else if (inter.end > prev.end) {
// Modify the element already in list
prev.end = inter.end;
}
}
return ret;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment