![]() |
1
1
创建一个包含所有值的单个列表,其中每个值都标记有两个计数:一个与集合a相关,另一个与集B相关。最初,当值来自集合a时,这些计数为1和0,当值来源于集合B时,计数为0和1。因此,此列表中的条目可以是元组(value、countA、countB)。此操作为O(n)。 对这些元组进行排序。O(nlogn) 将具有重复值的元组合并为一个元组,并将值累积在相应的计数器中,使元组告诉我们该值在集合A中出现了多少次,在集合B中出现了几次。O(n) 按排序顺序遍历此列表,并保持一系列相邻元组中countA的最大计数和,其中countB始终为0,以及该范围的最小值和最大值。O(n) 排序是时间复杂度的决定因素:O(nlogn)。 |
![]() |
2
1
按O对A和B进行排序(|A|log|A|+|B|log|B|)。然后应用以下算法,其复杂度为O(|A|+|B|):
第一次检查时,它可能看起来是二次的,但请注意,我们永远不会减少
|
![]() |
dan · 按距离截止对线性间隔进行分组 3 年前 |
![]() |
CodeRic · 导航时的clearInterval()。推式反应器 3 年前 |
|
rayray · 查找Swift 4中作为字符串存储的2次之间的差异 7 年前 |
![]() |
kjdion84 · 间隔造成的不必要延迟 7 年前 |
![]() |
Hans Wurst · Numpy查找数组小范围内最大值的索引 7 年前 |
![]() |
Mohammed · Oracle查询中的H2加减间隔秒 7 年前 |
![]() |
Pau RS · 基于间隔重叠合并两个数据帧 7 年前 |
![]() |
LookIntoEast · 不超过覆盖范围限制的最大间隔子集? 7 年前 |