zoukankan      html  css  js  c++  java
  • [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:

    Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
    Output: [[1,2],[3,10],[12,16]]
    Explanation: Because the new interval [4,8] overlaps with [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;
        }
    }
  • 相关阅读:
    出差归来
    五一假期的开端
    哭。。。五一这就过拉。。。还没什么感觉那。。。呜呜
    爱姬家族新成员。。。
    大道至简读后感
    假期进度报告
    假期报告
    假期进度报告
    假期进度报告
    假期进度报告
  • 原文地址:https://www.cnblogs.com/xuanlu/p/13128865.html
Copyright © 2011-2022 走看看