力扣 56. 合并区间

题目来源:https://leetcode.cn/problems/merge-intervals/description/

 C++题解:根据左区间排序,更新每一段的右区间最大值,直到间断。

class Solution {
public:static bool cmp(vector<int> & a, vector<int> & b) {return a[0] < b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);int start = intervals[0][0], end = intervals[0][1];vector<vector<int> >res;vector<int> seg(2);for(int i = 1; i < intervals.size(); i++) {if(intervals[i][0] <= end) {end = max(end, intervals[i][1]);}else{// 添加当前区间,并且更新start和end,但是没有最后一个区间seg[0] = start; start = intervals[i][0];seg[1] = end; end = intervals[i][1];res.push_back(seg);}}// 添加最后一个区间seg[0] = start;seg[1] = end;res.push_back(seg);return res;}
};

同思路,另一种写法(代码随想录)。

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() == 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达式sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});// 第一个区间就可以放进结果集里,后面如果重叠,在result上直接合并result.push_back(intervals[0]); for (int i = 1; i < intervals.size(); i++) {if (result.back()[1] >= intervals[i][0]) { // 发现重叠区间// 合并区间,只更新右边界就好,因为result.back()的左边界一定是最小值,因为我们按照左边界排序的result.back()[1] = max(result.back()[1], intervals[i][1]); } else {result.push_back(intervals[i]); // 区间不重叠 }}return result;}
};

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

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

相关文章

Linux实训笔记~操作系统概述

1、操作系统 操作系统作为接口的示意图: 没有安装操作系统的计算机, 通常被称为裸机。 2、不同应用利于的主流操作系统 桌面操作系统 服务器操作系统 嵌入式操作系统 移动设备操作系统

多线程案例

多线程案例 1. 单例模式2. 阻塞式队列3. 定时器4. 线程池 1. 单例模式 单例模式能保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例.分为懒汉式和饿汉式两种 饿汉式: 类加载的同时, 创建实例. class Singleton {private static Singleton instance new Singlet…

计算机网络——网络层

文章目录 **1 网络层的功能****1.1 异构网络互连****1.2 路由与转发****1.3 SDN的基本概念****1.4 拥塞控制** **2 路由算法****2.1 静态路由和动态路由****2.2 距离-向量路由算法&#xff08;动态&#xff09;****2.3 链路状态路由算法&#xff08;动态&#xff09;****2.4 层…

技术速览|Meta Llama 2 下一代开源大型语言模型

AI 使用大型语言模型&#xff08;LLM&#xff09;来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本&#xff0c;并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭&#xff0c;而现有的开放课程数量十分有限。这就…

Python爬虫+数据可视化:分析唯品会商品数据

目录 前言数据来源分析1. 明确需求2. 抓包分析&#xff1a;通过浏览器自带工具: 开发者工具 代码实现步骤: 发送请求 -> 获取数据 -> 解析数据 -> 保存数据发送请求解析数据保存数据 数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各…

LINUX中的myaql(一)安装

目录 前言 一、概述 二、数据库类型 三、数据库模型 四、MYSQL的安装 &#xff08;一&#xff09;yum安装MYSQL &#xff08;二&#xff09;rpm安装MYSQL 五、MYSQL本地登录 rpm安装MYSQL本地登录 六、重置密码 总结 前言 MySQL是一种常用的开源关系型数据库管理系统&#xff…

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(下)

本篇文章主要介绍在安装完ROS后&#xff0c;在进行MATLAB与ROS联合仿真之前&#xff0c;需要进行的一些环境搭建以及准备工作&#xff0c;主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷…

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 &#xff08;1&#xff09;错误日志 查看当前错误日志和是否记录警告设置 &#xff08;2&#xff09;通用查询日志 查看通用查询日志的设置 &#xff08;3&#xff09;二进制日志 查看二进制文件的设置&…

-Ddfs.checksum.combine.mode=COMPOSITE_CRC参数解析

-Ddfs.checksum.combine.modeCOMPOSITE_CRC -Ddfs.checksum.combine.modeCOMPOSITE_CRC是一个Hadoop配置参数&#xff0c;用于指定HDFS&#xff08;Hadoop分布式文件系统&#xff09;在计算文件校验和时使用的模式。 具体来说&#xff0c;dfs.checksum.combine.mode 参数决定…

最小二乘拟合椭圆

目录 1.拟合椭圆2.示例代码 爬虫网站自重。 1.拟合椭圆 二次曲线的一般方程为&#xff1a; A x 2 B x y C y 2 D x E y F 0 Ax^2BxyCy^2DxEyF0 Ax2BxyCy2DxEyF0 令&#xff1a; Δ B 2 − 4 A C Δ B^2-4AC ΔB2−4AC 那么&#xff0c;当 Δ > 0 Δ >0 Δ>0…

js基础-练习三

九九乘法表&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthsc, initial-scale1.0"><title>九九乘法表</title><style&g…

NLP杂记

来京一周余&#xff0c;初病将愈&#xff0c;终跑通llama及ViT&#xff0c;记于此—— 之前都是做的图像&#xff0c;大模型迁移基本上都是NLP相关的知识&#xff0c;很多东西和CV差距还是有点&#xff0c;再加上大模型对算力要求较高&#xff0c;基于云的操作对我一个习惯在本…

【uniapp学习之】uni-forms必填项校验

代码块 <uni-forms ref"baseForm" :modelValue"baseFormData" label-widthauto :rules"rules"><uni-forms-item label"企业名称" required name"principalName"><uni-easyinput v-model"baseFormData.…

node中间件-koa框架

文章目录 1. koa 基本使用2. 参数解析3. 请求路径区分4. 路由5 参数解析5.1 params 与query解析5.2 body参数与urlencoded 解析5.3 form-data参数 6 . 文件上传7. 静态服务器8 响应数据9 错误处理 1. koa 基本使用 安装 npm i koakoa导出的是一个类&#xff0c;必须用new关键字…

Linux 用户组相关命令

添加用户组的命令是 groupadd&#xff0c;命令格式如下: [rootlocalhost ~]# groupadd [选项] 组名 选项&#xff1a; -g GID&#xff1a;指定组 ID&#xff1b;-r&#xff1a;创建系统群组。 使用 groupadd 命令创建新群组非常简单&#xff0c;例如&#xff1a; [rootlocalh…

Pytorch个人学习记录总结 05

目录 神经网络的基本骨架 卷积操作 torch.nn.functional.conv2d 神经网络的基本骨架 搭建Neural Network骨架主要用到的包是torch.nn&#xff0c;官方文档网址&#xff1a;torch.nn — PyTorch 2.0 documentation&#xff0c;其中torch.nn.Module很重要&#xff0c;是所有所…

springboot mybatis-plus 多数据源配置(HikariCP)

1.导入依赖jar <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgres…

【JVM】浅看JVM的运行流程和垃圾回收

1.JVM是什么 JVM&#xff08; Java Virtual Machine&#xff09;就是Java虚拟机。 Java的程序都运行在JVM中。 2.JVM的运行流程 JVM的执行流程&#xff1a; 程序在执行之前先要把java代码转换成字节码&#xff08;class文件&#xff09;&#xff0c;JVM 首先需要把字节码通过…

springboot中logback日志配置

springboot中logback日志配置 前言默认配置logback-spring.xml详细配置 前言 Spring Boot使用Apache的Commons Logging作为内部的日志框架&#xff0c;其仅仅是一个日志接口&#xff0c;在实际应用中需要为该接口来指定相应的日志实现。 Spring Boot从1.4版本开始内置的日志框…

程序员面试系列,kafka常见面试题

原文链接 Kafka是什么&#xff1f;它的主要作用是什么&#xff1f;什么是Kafka的主题&#xff08;Topic&#xff09;和分区&#xff08;Partition&#xff09;&#xff1f;Kafka中的消息是如何被生产者发送和消费者接收的&#xff1f;Kafka中的分区有什么作用&#xff1f;为什…