华为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

你可能感兴趣的:(java,华为,开发语言,算法,面试)