Merge intervals Most Optimized Solution in Java Please Check Out My Code

class Solution {

public int[][] merge(int[][] intervals) {
    List<int[]> res = new ArrayList<>();
    if(intervals.length == 0 || intervals == null)
        return res.toArray(new int[0][]);
    Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
    
    int start = intervals[0][0];
    int end = intervals[0][1];
    
    for(int[] i : intervals){
        if(i[0] <= end){
            end = Math.max(end,i[1]);
        }
        else{
            res.add(new int[]{start,end});
            start = i[0];
            end = i[1];
        }
    }
    res.add(new int[] {start,end});
    return res.toArray(new int[0][]);
    
}

}

Comments (0)