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;
        }
    }
  • 相关阅读:
    每种特定的迭代器如何使用
    常量迭代器
    容器迭代器
    三十分钟掌握STL
    高快省的排序算法
    FloatTest32 Example
    /浮点数的比较
    java第一天
    ACwing 898
    POJ 3268
  • 原文地址:https://www.cnblogs.com/xuanlu/p/13128865.html
Copyright © 2011-2022 走看看