57. Insert Interval

来源:互联网 发布:华为网络管理系统 编辑:程序博客网 时间:2024/06/09 18:19

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:
Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].

Example 2:
Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].

This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].

本题与上一题解法相同,只需要在原来列表中加入insert的元素,再做和56题相同的操作即可,程序如下:

/** * Definition for an interval. * public class Interval { *     int start; *     int end; *     Interval() { start = 0; end = 0; } *     Interval(int s, int e) { start = s; end = e; } * } */class Solution {    public List<Interval> insert(List<Interval> intervals, Interval newInterval) {        if (intervals.size() == 0){            List<Interval> l = new ArrayList<>();            l.add(newInterval);            return l;        }        intervals.add(newInterval);        List<Interval> lst = new ArrayList<>();        Collections.sort(intervals, new Mycomparator());        lst.add(intervals.get(0));        int size = intervals.size();        for (int i = 1; i < size; ++ i){            Interval top = lst.get(lst.size() - 1);            if (top.end < intervals.get(i).start){                lst.add(intervals.get(i));            }            else {                Interval tmp = new Interval(Math.min(top.start, intervals.get(i).start),                                             Math.max(top.end, intervals.get(i).end));                lst.remove(lst.size() - 1);                lst.add(tmp);            }        }        return lst;    }}class Mycomparator implements Comparator<Interval> {    @Override    public int compare(Interval l0, Interval l1){        return l0.start - l1.start;    }}
当然还有另外一种更高效率的做法,因为题目已经说明,原来的list是根据start有序排列的,所以,只需扫描list中Interval对象,保留与insert不重叠的Interval对象,更新重叠的区域,相对第一种解法省去了sort的过程。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ipad死机了黑屏怎么办 小米4死机了怎么办 小米平板黑屏是怎么办? ipad死机怎么办不能关机 ipad突然死机了怎么办 京东买ipad坏了怎么办 ipad开机键失灵怎么办 苹果手机按键坏了怎么办 ipad使用中黑屏怎么办 苹果下不可软件怎么办 大学毕业想要当演员怎么办 郑州东站怎么办临时身份证 因招工年龄大造小档桉怎么办 6楼层顶墙边漏水怎么办 信访三级终结后怎么办 领导安排工作不合理怎么办 老板不安排工作怎么办 孩子啃老父母怎么办 孩子变成讨好形怎么办 工厂破产了工资怎么办 失业就业登记证怎么办? 如果父母是教师怎么办 老人档案丢了怎么办 想离婚想要孩子怎么办 一二年级成绩差怎么办 高考复读又失败怎么办 孩子不想估成绩怎么办 手机信号被屏蔽了怎么办 西安市旅游年卡怎么办 广电宽带网速慢怎么办 电视智能卡坏了怎么办 家乐卡二次授信怎么办? 邢台银行倒闭了怎么办 不敢和导师交流怎么办 考上一个破大学怎么办 腻子粉检测报告怎么办 电子厂插件很慢怎么办 预付费电表跳闸怎么办 电费有疑问怎么办大连 农村电表箱坏了怎么办 农村电表没电怎么办