当前位置: 首页 > article >正文

算法基础-区间合并

1、按照区间的左端点排序
2、

左端点小于等于ed,只需要更新ed和右端点的最大值

左端点大于ed,存入res中,并更新st和ed,最后一组数据手动插入res

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        List<int[]> seg = new ArrayList<>();
        List<int[]> res = new ArrayList<>();
        int n = in.nextInt();
        while(n -- > 0) {
            int l = in.nextInt();
            int r = in.nextInt();
            seg.add(new int[] {l, r});
        }
        seg.sort((a,b) -> {
            if(a[0] != b[0])
                return Integer.compare(a[0], b[0]);
            else
                return Integer.compare(a[1], b[1]);
        });
        int st = -2000000000;
        int ed = -2000000000;
        for (int[] item : seg) {
            //如果进来的这个区间左端点大于当前区间的右端点
            if(item[0] > ed) {
                //第一组数字不会添加到res
                if(st != -2000000000)
                    res.add(new int[] {st, ed});
                st = item[0];
                ed = item[1];
            } else {
                //如果进来的这个区间右端点小于等于当前区间的右端点
                ed = Math.max(ed, item[1]);
            }
        }
        //最后一组数据只更新了st、ed,并没有添加到res
        if (st != -2000000000) {
            res.add(new int[]{st, ed});
        }
        System.out.println(res.size());
    }
}


http://www.kler.cn/a/287306.html

相关文章:

  • [代码随想录Day16打卡] 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树
  • 技术速递|Microsoft.Extensions.VectorData 预览版简介
  • html实体字符
  • 【python】Bokeh 与 Plotly:创建交互式数据可视化工具
  • 什么是 C++ 中的友元函数和友元类?友元的作用是什么?有什么注意事项?
  • 小试牛刀-Anchor安装和基础测试
  • Gartner首次发布AI代码助手魔力象限,阿里云进入挑战者象限,通义灵码产品能力全面领先
  • 数学基础 -- 线性代数之线性变换
  • 美股DT有没有程序化软件或者指标选股工具
  • 采集工具选型调研
  • ping不通本地虚拟机的静态ip的解决方案
  • Vue3 官方推荐状态管理库Pinia
  • GEE数据集:城市热岛强度 (UHII)
  • 研究生深度学习入门的十天学习计划------第六天
  • 高速传输uwb无线收发芯片,超宽带、低时延无线通信,定位测距技术
  • Seata 部署遇到的各种奇葩问题
  • Spark2.x:通过 JDBC 连接数据库(DataFrame)
  • 如何使用python抓包,附代码
  • Avalonia 播放 VLC 视频(Windows / Linux)
  • 【HTTP、Web常用协议等等】前端八股文面试题
  • C# 编译程序引用C++DLL托管动态链接库实例
  • 用Python实现时间序列模型实战——Day 8: 季节性ARIMA模型 (SARIMA)
  • 分页查询--条件查询
  • STM32 ADC采样详解
  • verilog bug记录-修改信号线频率
  • zookeeper分部式锁