1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public int[][] insert(int[][] intervals, int[] newInterval) { List<int[]> ans = new ArrayList<>(); int newStart = newInterval[0], newEnd = newInterval[1]; boolean flag = false; for (int[] interval : intervals) { int start = interval[0], end = interval[1]; if (newEnd < start) { if (!flag) { ans.add(new int[]{newStart, newEnd}); flag = true; } ans.add(interval); } else if (end < newStart) { ans.add(interval); } else { newStart = Math.min(newStart, start); newEnd = Math.max(newEnd, end); } } if (!flag) { ans.add(new int[]{newStart, newEnd}); } return ans.toArray(new int[ans.size()][]); } }
|