当前位置: 首页 > news >正文

算法经典题目:Insert Interval

题目

给定一组无重叠的时间区间,将一个新的时间区间插入到这些区间中(如果需要的话进行合并)。你可以假设这些时间区间最初是按照它们的开始时间排序好的。

示例1:
Input: intervals = [[1,3],[6,9]], newInterval = [2,5]
Output: [[1,5],[6,9]]
示例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].

解题思路

可以分 3 段处理,先添加原来的区间,即在给的 newInterval 之前的区间。然后添加 newInterval ,注意这⾥可能需要合并多个区间。最后把原来剩下的部分添加到最终结果中即可。

答案:

func insert(intervals []Interval, newInterval Interval) []Interval {res := make([]Interval, 0)if len(intervals) == 0 {res = append(res, newInterval)return res}curIndex := 0for curIndex < len(intervals) && intervals[curIndex].End < newInterval.Start
{res = append(res, intervals[curIndex])curIndex++}for curIndex < len(intervals) && intervals[curIndex].Start <=
newInterval.End {newInterval = Interval{Start: min(newInterval.Start,
intervals[curIndex].Start), End: max(newInterval.End,
intervals[curIndex].End)}curIndex++}res = append(res, newInterval)for curIndex < len(intervals) {res = append(res, intervals[curIndex])curIndex++}return res
}

🚀 获取更多详细资料可点击链接进群领取,谢谢支持👇

点击免费领取更多资料

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深入了解HTML链接:从基础到进阶——WEB开发系列06
  • C# 不使用 `async` 和 `await` 的常见场景
  • STC-ISP升级MCU
  • HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)
  • 【路由器】RT-AC88U华硕配置DNS
  • 博客标题: 在 Spring Boot 中使用策略模式实现灵活的订单处理
  • 经纬恒润荣获小米汽车优秀质量奖!
  • SpringBoot统一功能处理——统一数据返回格式
  • 卷积神经网络 - 卷积神经网络与深度学习的历史篇
  • Python学习笔记(六)
  • 云存储技术:HBase HDFS 无感知迁移方案
  • cmake 编译教程
  • 编程-设计模式 23:模板方法模式
  • mfc140u.dll丢失的科学修复手段,简单又方便的mfc140u.dll修复
  • Ant-Design-Vue快速上手指南+排坑
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 30天自制操作系统-2
  • CSS中外联样式表代表的含义
  • django开发-定时任务的使用
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • es的写入过程
  • Fastjson的基本使用方法大全
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java程序员幽默爆笑锦集
  • Js基础知识(一) - 变量
  • Redis 懒删除(lazy free)简史
  • SQLServer之创建显式事务
  • webgl (原生)基础入门指南【一】
  • 从0到1:PostCSS 插件开发最佳实践
  • 那些被忽略的 JavaScript 数组方法细节
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 数组大概知多少
  • 小李飞刀:SQL题目刷起来!
  • 硬币翻转问题,区间操作
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​如何使用QGIS制作三维建筑
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #if 1...#endif
  • #include到底该写在哪
  • #stm32整理(一)flash读写
  • (2)MFC+openGL单文档框架glFrame
  • (二)hibernate配置管理
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (九)信息融合方式简介
  • (七)Activiti-modeler中文支持
  • (强烈推荐)移动端音视频从零到上手(下)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十五)使用Nexus创建Maven私服
  • (算法设计与分析)第一章算法概述-习题
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)程序员技术练级攻略
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET CLR基本术语