您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

查找范围的最大相交子集

查找范围的最大相交子集

如果我对问题的理解正确,那么这并不是您所链接论文中描述的NP问题的一个实例。这是我对问题的理解以及多项式时间解。

我们给定了一组实数范围,例如n:[A1,B1],[A2,B2],…,[An,Bn],其中Ai <= Bi。

创建起点和终点的排序列表,并按数字顺序排列,以指示该点是起点还是终点。

在您的示例中,该值为:12 +,14 +,15 +,17 +,20 +,21-,22-,25-,27-,62 +,64 +,65-,70-,80-

将curOverlap和maxOverlap初始化为零。

遍历列表,为每个+增加curOverlap,为每个-减少。在每个增量上设置maxOverlap = max(curOverlap,maxOverlap)。

要继续例如: 缬氨酸,CUR,最大 12,1,1 14,2,2 15,3,3 17,4,4 20,5,5 21,4,5 22,3,5 25,2,5 27,1,5 62,2,5 64,3,5 65,2,5 70,1,5 80,0,5

最大重叠值为5。如果您想知道最大重叠发生在何处,也可以存储与最大关联的val。在此示例中,这将为您提供20。然后遍历初始范围并找到包含20个范围的5个范围很简单。

-edit-如果您有重复的值,请在每个值的负号之前对正号进行计数,以便包括在单个点处重叠的范围。

其他 2022/1/1 18:15:16 有511人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶