[LC] 57. Insert Interval
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Input: intervals = [[1,3],[6,9]], newInterval = [2,5] Output: [[1,5],[6,9]]
Example 2:
[[1,2],[3,5],[6,7],[8,10],[12,16]]
[4,8]
[4,8]
[3,5],[6,7],[8,10]
class Solution { public int[][] insert(int[][] intervals, int[] newInterval) { List<int[]> list = new ArrayList<>(); int i = 0; while (i < intervals.length && intervals[i][1] < newInterval[0]) { list.add(intervals[i]); i += 1; } int start = newInterval[0], end = newInterval[1]; // should be start <= newInterval end while(i < intervals.length && intervals[i][0] <= newInterval[1]) { start = Math.min(start, intervals[i][0]); end = Math.max(end, intervals[i][1]); i += 1; } list.add(new int[]{start, end}); while (i < intervals.length) { list.add(intervals[i]); i += 1; } int[][] res = new int[list.size()][2]; for (int j = 0; j < list.size(); j++) { res[j] = list.get(j); } return res; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步