首页 > 试题广场 >

线段重合

[编程题]线段重合
  • 热度指数:1289 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
每一个线段都有start和end两个数据项,表示这条线段在X轴上从start位置开始到end位置结束。
给定一批线段,求所有重合区域中最多重合了几个线段,首尾相接的线段不算重合。
例如:线段[1,2]和线段[2.3]不重合。
线段[1,3]和线段[2,3]重合



输入描述:
第一行一个数N,表示有N条线段
接下来N行每行2个数,表示线段起始和终止位置


输出描述:
输出一个数,表示同一个位置最多重合多少条线段
示例1

输入

3
1 2
2 3
1 3

输出

2

备注:

头像 yabo083
发表于 2024-05-22 21:42:06
这边替左神宣传下【算法讲解027【必备】堆结构常见题】 你看你也会! 下面开始说思路: 设定每个线段都有l和r两个端点, 首先先给线段按l,升序排列; (这边我使用java自带的Arrays.sort+自定义规则完成) 其次在for循环里的while循环里,从peek一下小根堆(这里面我们放r,但不 展开全文
头像 yabo083
发表于 2024-05-22 21:42:16
import java.io.*; import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; public class Main { public static int n; 展开全文