栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查找范围的最大相交子集

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查找范围的最大相交子集

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

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

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

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

  1. 将curOverlap和maxOverlap初始化为零。

  2. 遍历列表,为每个+增加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-如果您有重复的值,请在每个值的负号之前对正号进行计数,以便包括在单个点处重叠的范围。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号