leetcode56 合并区间

题目

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

解析

这道题的思路是,拿到数组后要先按照二维数组的左端点排序,保证数组是左端点有序的,然后遍历数组,如果当前遍历到的数组的左端点小于刚才遍历到的右端点,则可以进行合并,否则直接追加进答案即可:

func merge(intervals [][]int) (ans [][]int) {slices.SortFunc(intervals, func(p, q []int) int {return p[0] - q[0]})for _, p := range intervals {// 遍历到的每一个数组m := len(ans)if m > 0 && p[0] <= ans[m-1][1] { // 遍历到的左端点小于已经遍历过的右端点,可以合并ans[m-1][1] = max(ans[m-1][1], p[1]) // 比如[[1,4], [2,3]]其实就不需要变化} else {ans = append(ans, p)}}return
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6、 垃圾回收 浏览器事件循环

垃圾回收 & 浏览器事件循环 垃圾回收引用计数算法标记清除&#xff08;mark-sweep&#xff09;算法标记整理&#xff08;Mark-Compact&#xff09;算法 内存管理浏览器事件循环宏任务微任务整体流程 垃圾回收 垃圾回收&#xff0c;又称为&#xff1a;GC&#xff08;garbag…

华火新能源集成灶评测:创新与品质的融合

在厨房电器的不断推陈出新中&#xff0c;华火新能源集成灶以其独特的魅力进入了人们的视野。今天&#xff0c;我们就来深入评测这款备受关注的产品——华火新能源集成灶 一、华火新能源集成灶的创新与环保 首先&#xff0c;我们先来探讨新能源集成灶的整体表现。华火新能源集成…

【面试干货】Hashtable 与 HashMap 的区别

【面试干货】Hashtable 与 HashMap 的区别 1、线程安全性2、对null值的处理3、遍历方式4、遍历示例5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;Hashtable和HashMap都是基于哈希表实现的Map接口。然而&#…

ERP、CRM、SRM、PLM、HRM、OA……都是啥意思?

经常会听说一些奇怪的系统或平台名称&#xff0c;例如ERP、CRM、SRM、PLM、HRM、OA等。 这些系统&#xff0c;都是干啥用的&#xff1f; █ ERP&#xff08;企业资源计划&#xff09; 英文全称&#xff1a;Enterprise Resource Planning 定义&#xff1a;由美国Gartner Gro…

网络安全复习笔记

概述 要素 CIA&#xff1a;可用性&#xff1b;完整性&#xff1b;保密性。 可控性&#xff1b;不可否认性&#xff1b;可审查性。 攻击 被动&#xff1a;窃听 - 保密性&#xff1b;监听 - 保密性主动&#xff1a;假冒 - 完整性&#xff1b;重放 - 完整性&#xff1b;改写 -…

11、Spring之Bean生命周期~依赖注入(2)

11、Spring之Bean生命周期~依赖注入&#xff08;2&#xff09; 依赖注入查找注入点对注入点进行赋值InjectionMetadata.inject()方法AutowiredFieldElement.inject()方法resolveFieldValue()方法resolveDependency方法createOptionalDependency()方法doResolveDependency()方法…

Java 面试题:Java 的文件拷贝方式有几种?哪一种最高效?

在Java编程中&#xff0c;文件操作是常见且重要的任务之一&#xff0c;其中文件拷贝&#xff08;File Copy&#xff09;是一种基本操作。Java提供了多种方式来实现文件拷贝&#xff0c;每种方式在性能、易用性和灵活性上各有优劣。了解并选择最适合的文件拷贝方法&#xff0c;对…

SQL Server数据库安装

原文&#xff1a;https://blog.c12th.cn/archives/26.html SQL Server数据库安装 测试&#xff1a;笔记本原装操作系统&#xff1a;Windows 10 家庭中文版 资源分享链接&#xff1a;提取码&#xff1a;qbt2 注意事项&#xff1a; 请严格按照步骤安装&#xff0c;SQL软件安装较…

el-table

el-table实现滚动效果 表格数据是websocket通信获取的数据&#xff0c;首次获取20条数据&#xff0c;以后新增订阅获取一条&#xff0c;新增一条则向上滑动显示最新数据。 const scroll (tableBody: any) > {// 先清除后设置cancelAnimationFrame(scrollTimer.value);let…

Matlab初识:什么是Matlab?它的历史、发展和应用领域

目录 一、什么是Matlab&#xff1f; 二、Matlab的历史与发展 三、Matlab的应用领域 四、安装和启动Matlab 五、界面介绍 六、第一个Matlab程序 七、总结 一、什么是Matlab&#xff1f; Matlab 是由 MathWorks 公司开发的一款用于数值计算、可视化以及编程的高级技术计算…

mysql 查询某表数据,更新另外一个表字段

1.根据子查询更新表字段(简单推荐) UPDATE demo d set d.user_name (select user_name from user u where u.user_code d.user_code) where d.user_name IS NULL2.使用join关联查询再插入 不想写了&#xff0c;累了有空再补 3.首先查询user表&#xff0c;找出与demo表中相…

spi service实现类加载代码

private static List<Factory> discoverFactories(ClassLoader classLoader) {//spi机制加载类final Iterator<Factory> serviceLoaderIterator ServiceLoader.load(Factory.class, classLoader).iterator();final List<Factory> loadResults new ArrayList…

第二证券今日投资参考:苹果WWDC大会开幕 地产板块再迎催化

上星期五&#xff0c;沪指盘中窄幅震动&#xff0c;创业板指在宁德年代的拖累下大幅下探。到收盘&#xff0c;沪指微涨0.08%报3051.28点&#xff0c;深证成指跌0.9%报9255.68点&#xff0c;创业板指跌2.16%报1781.07点&#xff0c;北证50指数涨0.93%&#xff0c;万得微盘股指数…

【Effective Web】常见的css布局方式--三栏布局

常见的css居中方式–三栏布局 第一种实现&#xff1a;table布局&#xff08;不推荐&#xff09; 缺点&#xff1a;在table加载前&#xff0c;整个table都是空白的&#xff0c;且修改布局排版都十分困难 <table class"container"><td class"left"…

vue:对三种获取更新后的dom的方式进行分析

一、问题分析 由于vue的异步更新机制&#xff0c;我们在同步代码中是无法获取到更新后的dom的信息的 针对这个问题&#xff0c;我们有三种解决方案获取更新后的dom: 1.nextTick() 2.setTimeout() 3.在微任务中获取 因为更新是在同步任务结束后&#xff0c;执行微任务之前…

Python模拟车站检票系统

1 问题 在日常生活中&#xff0c;车站人工检票效率很慢&#xff0c;有没有代替人工检票的系统呢&#xff1f; 2 方法 1.通过接口获取车站名 2.再根据车站名获取到车站的代码 3.然后根据车站代码获取当天的全部车次信息 4.根据当前时间筛选出大于当前时间的车次list 5.通过多线程…

【Linux环境部署】Linux系统Docker安装与配置(一)

文章目录 Docker安装较新版本ubuntu安装docker旧版本&#xff08;<16&#xff09;安装docker完全卸载离线安装 Nvidia Docker安装Nvidia Docker镜像配置 Docker Compose安装&升级 Docker安装 Docker使用手册&#xff1a;Docker中文使用手册 Docker网卡地址修改&#xf…

【数据库编程-SQLite3(三)】Ubuntu下sqlite3的使用

学习分享 1、安装sqlite3命令2、sqlite3点命令3、在Linux命令行下&#xff0c;启动sqlite33.1、编写sql脚本3.2、脚本编写--DDL3.3、进入xxx.db数据库&#xff0c;读取脚本。3.4、再次查看数据库中的表。证明表创建成功。3.5、查看数据表中用户内容3.6、查看表结构3.7、在数据库…

k8s业务上线流程

k8s业务上线流程 搭建好k8s集群之后&#xff0c;需要在集群内部运行一些业务程序&#xff0c;并可以访问&#xff0c;这样的集群才有意义。之前只是自己学习如何搭建集群&#xff0c;如何创建资源对象&#xff0c;更多的是在学习和练习层面&#xff0c;并没有实际用处&#xf…

SpringBoot3使用Swagger

SpringBoot3使用Swagger 项目中的后端接口进行简单的前端展示一、依赖引入二、快速启动1.在application.yml中配置2.或者properties文件,则配置3.启动项目访问swagger 项目中的后端接口进行简单的前端展示 Swagger是一个用于设计、构建、文档化和使用RESTful Web服务的开源工具…