Fundamentals · Medium · Free
Merge overlapping intervals — sort and sweep.
FresherFundamentalsData Structures & Algorithms
Merge intervals
Sort by start, sweep merging overlapping intervals.
java
List<int[]> merge(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
List<int[]> res = new ArrayList<>();
for (int[] iv : intervals) {
if (res.isEmpty() || res.get(res.size()-1)[1] < iv[0]) res.add(iv);
else res.get(res.size()-1)[1] = Math.max(res.get(res.size()-1)[1], iv[1]);
}
return res;
}Classic calendar / meeting room problems.