领扣LintCode问题答案-30. 插入区间

目录

  • 30. 插入区间
  • 鸣谢

30. 插入区间

给出一个无重叠的按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

样例 1:

输入:
(2, 5) into [(1,2), (5,9)]
输出:
[(1,9)]

样例 2:

输入:
(3, 4) into [(1,2), (5,9)]
输出:
[(1,2), (3,4), (5,9)]

/*** Definition of Interval:* public classs Interval {* int start, end;* Interval(int start, int end) {* this.start = start;* this.end = end;* }* }*/public class Solution {/*** @param intervals:   Sorted interval list.* @param newInterval: new interval.* @return: A new interval list.*/public List<Interval> insert(List<Interval> intervals, Interval newInterval) {// write your code hereList<Interval> ret      = new ArrayList<>();boolean        inserted = false;for (int i = 0; i < intervals.size(); i++) {Interval interval = intervals.get(i);if (inserted) {ret.add(interval);} else {if (newInterval.end < interval.start) {ret.add(newInterval);ret.add(interval);inserted = true;} else if (newInterval.start <= interval.end) {int start = Math.min(newInterval.start, interval.start);while (i + 1 < intervals.size()&& newInterval.end > interval.end) {interval = intervals.get(++i);}if (newInterval.end >= interval.start) {ret.add(new Interval(start, Math.max(newInterval.end, interval.end)));} else {ret.add(new Interval(start, newInterval.end));ret.add(interval);}inserted = true;} else {ret.add(interval);}}}if (!inserted) {ret.add(newInterval);}return ret;}
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

领扣LintCode问题答案-30. 插入区间相关推荐

  1. 领扣LintCode问题答案-58. 四数之和

    领扣LintCode问题答案-58. 四数之和 目录 58. 四数之和 鸣谢 58. 四数之和 给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d) ...

  2. 领扣LintCode问题答案-57. 三数之和

    领扣LintCode问题答案-57. 三数之和 目录 57. 三数之和 鸣谢 57. 三数之和 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三 ...

  3. 领扣LintCode问题答案-33. N皇后问题

    领扣LintCode问题答案-33. N皇后问题 目录 33. N皇后问题 鸣谢 33. N皇后问题 n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行, ...

  4. 领扣LintCode问题答案-2. 尾部的零

    领扣LintCode问题答案-2. 尾部的零 目录 2. 尾部的零 鸣谢 2. 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2 样例解释: 11! = 399 ...

  5. 领扣LintCode问题答案-46. 主元素

    领扣LintCode问题答案-46. 主元素 目录 46. 主元素 鸣谢 46. 主元素 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一. 你可以假设数组非空,且数组 ...

  6. 领扣LintCode问题答案-29. 交叉字符串

    领扣LintCode问题答案-29. 交叉字符串 目录 29. 交叉字符串 鸣谢 29. 交叉字符串 给出三个字符串:s1.s2.s3,判断s3是否由s1和s2交叉构成. 样例 1: 输入: &quo ...

  7. 领扣LintCode问题答案-17. 子集

    领扣LintCode问题答案-17. 子集 目录 17. 子集 鸣谢 17. 子集 给定一个含不同整数的集合,返回其所有的子集. 子集中的元素排列必须是非降序的,解集必须不包含重复的子集. 样例 1: ...

  8. 领扣LintCode问题答案-15. 全排列

    领扣LintCode问题答案-15. 全排列 目录 15. 全排列 鸣谢 15. 全排列 给定一个数字列表,返回其所有可能的排列. 你可以假设没有重复数字. 样例 1: 输入:[1] 输出: [ [1 ...

  9. 领扣LintCode问题答案-35. 翻转链表

    领扣LintCode问题答案-35. 翻转链表 目录 35. 翻转链表 鸣谢 35. 翻转链表 翻转一个链表 样例 1: 输入: 1->2->3->null 输出: 3->2- ...

最新文章

  1. 杭州往事之与L项目SME Cathy小聚
  2. 三种方式实现圣杯布局
  3. python之multiprocessing创建进程
  4. Android - 基于Toolbar的Navigation Drawer(Material Design)
  5. WinCE驱动调试助手V2.5
  6. mysql 禁止存储过程_为什么阿里巴巴禁止使用存储过程?
  7. 【转】用Qt生成dll类库及调用方法
  8. Flashdevelop解决ANE报Not supported native extensions profile
  9. 关于Oracle表访问方式的总结
  10. 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
  11. NitroShare —— 跨平台的局域网文件传输工具
  12. Chrome和edge浏览器书签本地路径以及批量修改书签
  13. 风变编程-python(基础语法-第1关)
  14. 沉浸式体验参加网络安全培训班,学习过程详细到底!
  15. 【CVE-2021-4034】 漏洞详细原理以及复现,polkit的pkexec中的本地提权漏洞
  16. For循环的简单实例
  17. (转)RMAN-06004: 恢复目录数据库发生 ORACLE 错误: RMAN-20005: target database name is ambiguous
  18. app如何添加广告位 uni_uniapp给全端小程序添加激励广告详细教程
  19. AnyTrans for iOS for mac(ios数据传输管理工具)
  20. java编程入门pdf_Java 8编程入门官方教程(第6版) [(美)Schildt H.] 中文完整pdf扫描版[233MB]...

热门文章

  1. Acwing 第 89 场周赛
  2. Java播放MP3——JLayer
  3. 老婆最近陷入苦恼,连续几个晚上都没睡好
  4. 串口通讯与步进电机驱动
  5. CIFAR-10数据集(介绍、下载读取、可视化显示、另存为图片)
  6. CMS垃圾回收器与G1垃圾回收器
  7. SAT数学专业词汇整理
  8. TensorFlow(Keras) 一步步实现Fashion MNIST衣服鞋子图片分类 (2) Coursera深度学习教程分享
  9. upload文件上传靶场
  10. 深度学习——梯度消失、梯度爆炸