57. Insert Interval

class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        List<int[]> res = new LinkedList<int[]>();
        
        for(int[] interval : intervals){
            if(newInterval != null && interval[1]<newInterval[0]){
                res.add(interval);
            }else if (newInterval!=null && !(interval[1]<newInterval[0]) && !(newInterval[1]<interval[0])){
                newInterval[0] = Math.min(interval[0], newInterval[0]);
                newInterval[1] = Math.max(interval[1], newInterval[1]);
            }else if (newInterval != null){
                res.add(newInterval);
                newInterval=null;
                res.add(interval);
            }else{
                res.add(interval);
            }
        }
        
        if (newInterval != null) res.add(newInterval);
        return res.toArray(new int[res.size()][]);
    }
}

Last updated

Was this helpful?