leetcode Java:57. 插入区间

题目:57. 插入区间

思路:

  1. 可以按照上一题的思路,把新的区间加入区间列表,然后排序。
  2. 也可以逐个与区间列表里的区间合并。

代码:

class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        int l = newInterval[0];
        int r = newInterval[1];
        boolean placed = false;
        List<int[]> list = new ArrayList<>();
        for (int[] interval : intervals) {
            if (l > interval[1]) {
                list.add(interval);
            }
            else if (r < interval[0]) {
                if (!placed) {
                    list.add(new int[]{l, r});
                    placed = true;
                }
                list.add(interval);
            }
            else {
                l = Math.min(l, interval[0]);
                r = Math.max(r, interval[1]);
            }
        }
        if (!placed) {
            list.add(new int[]{l, r});
                    placed = true;
        }
        return list.toArray(new int[list.size()][]);
    }
}

你可能感兴趣的:(leetcode-java,leetcode,java)