博客
关于我
【leetcode】合并区间
阅读量:541 次
发布时间:2019-03-09

本文共 1273 字,大约阅读时间需要 4 分钟。

要解决给定一组区间并合并所有重叠区间的问题,可以按照以下步骤进行:

步骤 1:排序区间

首先,将所有区间按照起点进行升序排序。这样可以方便地比较相邻区间,判断是否存在重叠。

步骤 2:初始化结果列表

创建一个空的结果列表,用于存储最终的合并区间。

步骤 3:处理空输入

如果输入的区间集合为空,直接返回空数组。

步骤 4:遍历区间

从排序后的第一个区间开始遍历,逐个检查相邻区间是否存在重叠。

步骤 5:比较区间

对于当前区间和下一个区间,检查当前区间的结束点是否大于等于下一个区间的起点。如果是,说明存在重叠,合并两个区间,更新当前区间的结束点。如果不是,添加下一个区间到结果列表,并更新当前区间。

步骤 6:返回结果

将结果列表转换为数组并返回。

代码实现

以下是Java实现的代码:

import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Solution {    public int[][] merge(int[][] intervals) {        List
res = new ArrayList<>(); if (intervals.length == 0) { return new int[0][]; } Arrays.sort(intervals, (a, b) -> a[0] - b[0]); int[] current = intervals[0]; res.add(current); for (int i = 1; i < intervals.length; i++) { int[] next = intervals[i]; if (next[0] <= current[1]) { current[1] = Math.max(current[1], next[1]); } else { res.add(next); current = next; } } return res.toArray(new int[][]); }}

解释

  • 排序:使用Arrays.sort对区间数组进行排序,确保区间按起点升序排列。
  • 初始化:创建结果列表res,并处理空输入情况。
  • 遍历:从第二个区间开始遍历,检查每个区间与前一个区间是否存在重叠。
  • 合并:如果存在重叠,合并两个区间,更新当前区间的结束点;否则,将区间添加到结果列表。
  • 返回:将结果列表转换为数组并返回。
  • 这个方法确保了所有重叠区间被正确合并,时间复杂度为O(n log n),主要来自于排序操作。

    转载地址:http://rxhiz.baihongyu.com/

    你可能感兴趣的文章
    Progress Kemp LoadMaster 远程命令执行漏洞复现(CVE-2024-1212)
    查看>>
    Project configuration is not up-to-date with pom.xml. Run Maven->Update Project
    查看>>
    Project Euler 15 Lattice paths
    查看>>
    Project Euler 48 Self powers( 大数求余 )
    查看>>
    Project Euler Problem 12: Highly divisible triangular number
    查看>>
    ProjectEuler 2
    查看>>
    projection介绍及EPSG:4326和EPSG:3857的投射转换
    查看>>
    project打开文件时,显示无法识别此文件格式?
    查看>>
    Prometheus + Grafana on Kubernetes部署
    查看>>
    prometheus + grafana进行服务器资源监控
    查看>>
    Prometheus Alertmanager 告警配置详解
    查看>>
    Prometheus Grafana 展示平台
    查看>>
    Prometheus pushgateway使用详解
    查看>>
    Prometheus 云原生 - Prometheus 数据模型、Metrics 指标类型、Exporter 相关
    查看>>
    Prometheus 云原生 - 基于 file_sd、http_sd 实现 Service Discovery
    查看>>
    Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用
    查看>>
    Prometheus 云原生 - 监控 Linux、MySQL、Redis、RabbitMQ、Docker、SpringBoot 3.x
    查看>>
    Prometheus 介绍
    查看>>
    Prometheus 安全配置详解
    查看>>
    prometheus 安装node_exporter, node_exporter 安装最新版 普罗米修思安装监控服务器client
    查看>>