华为OD机试真题 Java 实现【区间连接器】【2023Q1 200分】

在这里插入图片描述

一、题目描述

有一组区间 [a0, b0], [a1, b1], … (a, b 表示起点, 终点),区间有可能重叠、相邻,重叠或相邻则可以合并为更大的区间;

给定一组连接器[x1, x2, x3, …](x 表示连接器的最大可连接长度,即 x>=gap),可用于将分离的区间连接起来,但两个分离区间之间只能使用1个连接器;

请编程实现使用连接器后,最少的区间数结果。

区间数量 <10000;a,b 均 <=10000;

连接器梳理 <10000; x <=10000;

二、输入描述

区间组:[1,10],[15,20],[18,30],[33,40]

连接器组:[5,4,3,2]

三、输出描述

1

说明:合并后:[1,10], [15,30], [33,40],使用 5, 3 两个连接器连接后只剩下 [1,40]

四、解题思路

  1. 读取输入的区间组和连接器组。
  2. 将区间组字符串解析为一个二维整数数组rangeArr,每个子数组表示一个区间的起点和终点。
  3. 将连接器组字符串解析为一个整数列表connectList,表示每个连接器的最大可连接长度。
  4. 对区间组按照起点进行升序排序。
  5. 创建一个链表mergeR
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值