leetcode hot100 合并区间

news/2024/12/26 5:40:10/

56. 合并区间

已解答

中等

相关标签

相关企业

以数组 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] 可被视为重叠区间。

import copy

class Solution(object):

    def merge(self, intervals):

        """

        :type intervals: List[List[int]]

        :rtype: List[List[int]]

        """

        intervals_result = []

        intervals.sort(key = lambda x:x[0])

        # print(intervals)

        intervals_iter = copy.deepcopy(intervals)

        for i , interval in enumerate(intervals_iter):

            if i==0:

                intervals_result.append(interval)

            # 待处理0

            if interval[0]<=intervals_result[-1][1]:

                interval_merge = [intervals_result[-1][0],max(intervals_result[-1][1],intervals[i][1])]

                if len(intervals_result)>0:

                    intervals_result.pop()

                intervals_result.append(interval_merge)

            else:

                intervals_result.append(interval)

           

        return intervals_result


 

      

关键在于找到合并的条件是先按照start排序,然后看上一个的end有没有比这一个的start大,如果大的话就合并(包括两种情况,一个是这一个的start和end都比上一个的end小,一个是这一个的start小,end大)


http://www.ppmy.cn/news/1557800.html

相关文章

Android Java Ubuntu系统如何编译出 libopencv_java4.so

Cmake: cd ~ wget https://github.com/Kitware/CMake/releases/download/v3.30.3/cmake-3.30.3-linux-x86_64.tar.gztar -xzvf cmake-3.30.3-linux-x86_64.tar.gz sudo ln -sf $(pwd)/cmake-3.30.3-linux-x86_64/bin/* /usr/bin/cmake --versionAndroid NDK: wget https://…

一文了解 gis 相关服务=》及前端地图服务相关总结

文章目录 概要OGC技术名词解释cesium 应用案例openlayers 中应用实例XYZ服务OSM服务WMS服务WMTS服务WFS服务 mapbox 应用实例矢量瓦片服务栅格瓦片服务WMS服务WFS服务 leaflet 中 地图服务实例加载OpenStreetMap瓦片图层加载自定义XYZ瓦片图层加载WMS服务图层加载WFS服务图层加…

[机器学习]XGBoost(1)——前置知识

XGBoost简介 XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是一种一种高效的梯度提升决策树算法&#xff0c;它通过集成多个弱学习器&#xff08;决策树&#xff09;来构建一个强学习器。 核心思想&#xff1a; XGBoost的核心思想是Boosting&#xff0c;即通过…

《操作系统真象还原》第十章(一) —— 同步机制之互斥锁的实现

本章节所有代码托管在miniOS_32 章节任务介绍 问题复现 在上一节中&#xff0c;我们实现了线程轮转调度&#xff0c;并分别实现了三个线程并发的在终端进行输出打印 主线程 thread_work_a thread_work_b #include "print.h" #include "init.h" #inc…

Android Studio版本升级那些事

Android Studio版本升级那些事 文章目录 Android Studio版本升级那些事一、前言二、Android Studio版本相关知识1、Android13 签名应用无法在Android Studio 编译运行解决&#xff08;1&#xff09;无法编译运行前的尝试 2、Android Studio 的历史版本介绍4、Android Studio Gr…

Day27 - 大模型微调,LLaMA搭建

指令微调 SFT&#xff1a;Supervised Fine - Tuning 自我认知 self-cognitionidentity私有知识 / 具体任务公共知识 LLaMA-Factory 搭建过程 1. 下载 LLaMA-Factory 源代码 ​git clone https://github.com/hiyouga/LLaMA-Factory.git 2. 安装 LLaMA-Factory 依赖包 cd L…

Strip Map和Wafer Map的一些小科普

一、Strip Map和Wafer Map Strip Map和Wafer Map在半导体行业中都是重要的工具,它们各自有不同的应用和特点: 1. Strip Map: - Strip Map主要应用于半导体后道基板上的每个芯片的良率实时追溯。它从Die Bond贴芯片到Wire Bond、Marking为止的过程中实时处理及管理设备上传…

springboot+logback学习文档

目录 1、前提说明2、引入依赖、将logback配置文件打到classes下2.1、引入依赖2.2、将logback配置文件打到classes下 3、使用说明3.1、配置文件名称和位置3.2、常规用法3.2.1、property标签&#xff08;普通变量&#xff09;3.2.2、springProperty标签&#xff08;spring变量&am…