博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode: 57. Insert Interval(Hard)
阅读量:5938 次
发布时间:2019-06-19

本文共 1678 字,大约阅读时间需要 5 分钟。

1. 原题链接

2. 题目要求

该题与上一题的区别在于,插入一个新的interval对象,将此对象与所给列表里的Interval对象进行合并。

3. 解题思路

首先遍历Interval对象列表,找到插入位置。将插入位置之前的列表中的Interval对象直接加入结果列表。

然后查找所要插入Interval对象的end属性在列表中的位置。

最后将列表中剩余的Interval对象全部加入结果列表。

4. 代码实现

import java.util.LinkedList;import java.util.List;public class InsertIntervals57 {    public static void main(String[] args) {        Interval in1 = new Interval(1, 2);        Interval in2 = new Interval(3, 5);        Interval in3 = new Interval(6, 7);        Interval in4 = new Interval(8, 10);        Interval in5 = new Interval(12, 16);        Interval in = new Interval(4, 9);        List
ls = new LinkedList
(); ls.add(in1); ls.add(in2); ls.add(in3); ls.add(in4); ls.add(in5); for (Interval i : insert(ls, in)) System.out.println(i.start + " " + i.end); } public static List
insert(List
intervals, Interval interval) { List
res = new LinkedList
(); if (intervals.size() == 0) { res.add(interval); return res; } int i = 0; // 将插入位置之前的元素直接加入结果列表中 while (i < intervals.size() && intervals.get(i).end < interval.start) { res.add(intervals.get(i++)); } // 将所要插入的元素与李彪中的对象进行合并 while (i < intervals.size() && intervals.get(i).start <= interval.end) { interval = new Interval( // we could mutate newInterval here also Math.min(interval.start, intervals.get(i).start), Math.max(interval.end, intervals.get(i).end)); i++; } res.add(interval); // 将剩余的所有元素插入结果列表 while (i < intervals.size()) res.add(intervals.get(i++)); return res; }}

  

转载于:https://www.cnblogs.com/huiAlex/p/8386318.html

你可能感兴趣的文章
讲给普通人听的分布式数据存储
查看>>
《C++面向对象高效编程(第2版)》——3.13 采用语义
查看>>
《 短文本数据理解》——2.5小结
查看>>
如何编写一个全新的 Git 协议
查看>>
马云携阿里17位创始人及合伙人捐赠浙大一院5.6亿,杭州渐成中国硅谷
查看>>
《libGDX移动游戏开发从入门到精通》一第2章 libGDX的架构分析
查看>>
《配置管理最佳实践》——2.10 建立构建过程
查看>>
《C++入门经典(第5版•修订版)》——2.6 问与答
查看>>
PLM调研第二天
查看>>
《精通Linux设备驱动程序开发》——1.5 Linux发行版
查看>>
《术以载道——软件过程改进实践指南》—第1章1.3节如何实施CMMI
查看>>
Harris’s Linked List
查看>>
(流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
查看>>
什么Linux服务器最适合你?
查看>>
git 换行符问题,统一linux风格
查看>>
SQL on Linux Run on Docker
查看>>
C语言程序设计实践(OJ)-初识函数
查看>>
Spark机器学习9· 实时机器学习(scala with sbt)
查看>>
数据结构实践——队列数组
查看>>
从Demo到日千万PV,就是快! – 爱线下的上云实践
查看>>