插入区间

题目描述:给出一个无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

示例 :

输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]

输出: [[1,2],[3,10],[12,16]]

解释: 这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。

Java代码

class Solution {

    public int[][] insert(int[][] intervals, int[] newInterval) {

        List res = new LinkedList();

        int i = 0;

        int n = intervals.length;

        int nStart = newInterval[0];

        int nEnd = newInterval[1];

        while(i

            res.add(intervals[i]);

            i++;

        }

        if(i==n) {

            res.add(newInterval);

            return res.toArray(new int[0][]);

        }

        nStart = Math.min(intervals[i][0],newInterval[0]);

        while(i

            nEnd = Math.max(newInterval[1],intervals[i][1]);

            i++;

        }

        res.add(new int[]{nStart,nEnd});

        while(i

            res.add(intervals[i++]);

        }

        for(int[] x:res) {

            System.out.println(x[0]+"---------"+x[1]);

        }

        return res.toArray(new int[0][]);

    }

}

你可能感兴趣的:(插入区间)