Given list of (start and end time/sequence) we have to merge the overlapping intervals.
eg: Merge Overlapping intervals
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals, (a,b)-> a[0] - b[0]);// sort by starting time
List<List<Integer>> list = new ArrayList<>();
int start = intervals[0][0]; int end = intervals[0][1];
for(int i =1;i< intervals.length;i++){
if(end >= intervals[i][0]){
end = Math.max(end, intervals[i][1]);
continue;
}
else{
List<Integer> l = new ArrayList<>();
l.add(start);
l.add(end);
list.add(l);
start = intervals[i][0];
end = intervals[i][1];
}
}
List<Integer> l = new ArrayList<>();
l.add(start);
l.add(end);
list.add(l);
int result[][] = new int[list.size()][2];
for(int i = 0;i< list.size();i++){
result[i][0] = list.get(i).get(0);
result[i][1] = list.get(i).get(1);
}
return result;
}
}
Top comments (0)