7得票4回答
两种不同类型集合的set_intersection

有没有办法在两个不同类型的集合上执行std::set_intersection? 我有两个集合: std::set<X1> l_set1; std::set<X2> l_set2; 我可以为它们定义一些比较器,检查X1和X2是否相等。 struct sampl...

16得票3回答
Python中的成对集合交集

如果我有一个变量数量的集合(称为 n),每个集合最多有 m 个元素,那么计算所有集合对的交集的最有效方法是什么?请注意,这与所有 n 个集合的交集不同。 例如,如果我有以下集合:A={"a","b","c"} B={"c","d","e"} C={"a","c","e"} 我希望能够找到:i...

46得票6回答
在线性时间内计算集合交集?

有没有一种算法,可以在线性时间内计算两个集合的交集? 我可以运行两个for循环来检查所有元素对,并记录我在两个集合中发现的元素。然而,运行时间将是O(n2)。如何在O(n)时间内完成此操作?

18得票2回答
如何检查一个向量是否是另一个向量的子集?

目前,我认为使用std::set_intersection是最好的选择,然后检查较小输入的大小是否与被set_intersection填充的元素数量相同。 是否有更好的解决方案?

54得票19回答
Python:基于交集的简单列表合并

考虑存在以下整数列表: Consider there are some lists of integers as:#-------------------------------------- 0 [0,1,3] 1 [1,0,3,4,5,10,...] 2 [2,8] 3 [3,1,0,....

20得票3回答
Java集合 - 在两个集合中查找是否存在公共元素的最快方法

我有来自Guava HashMultimap.values()的两个集合。 我需要找出这两个非空集合是否存在交集,并且需要尽可能快的时间复杂度。 我不需要知道共同元素,只需要知道是否存在至少一个共同元素。 我想使用Sets.intersection(),但它的时间复杂度为O(m+n)。我们能否...

8得票4回答
交叉并排序两个numpy数组的索引

我有两个包含整数的numpy数组,长度均为几亿。每个数组中的值都是唯一的,且最初未排序。 我想要找到它们交集的索引并将其排序。例如: x = np.array([4, 1, 10, 5, 8, 13, 11]) y = np.array([20, 5, 4, 9, 11, 7, 25]) ...

14得票4回答
给定一个集合,求其中与给定集合的交集最大的子集,涉及算法和数据结构。

我有一个包含数百万个集合C的大型收藏品。我的集合中的元素来自于可能有2000个元素的宇宙。对于给定的集合s,我需要知道与s具有最大交集的C集合是哪个(或者是与s交集最大的k个C集合)。我将为不同的s顺序执行许多此类查询。 我知道做这件事的明显方法就是循环遍历C中的每个集合并计算交集,然后取最...

83得票15回答
高效的列表交集算法

给定两个列表(不一定排序),最有效的非递归算法是什么,用于查找这些列表的交集? 我不认为我可以访问哈希算法。

19得票6回答
西部最快的集合操作

我无法在一个地方找到关于这个主题的令人满意的覆盖范围,所以我想知道: 最快的集合交、并和不相交算法是什么? 是否有一些限定域的有趣算法? 有没有人能够击败O(Z),其中Z是实际交集的大小? 如果您的方法依赖排序集,请注意,但不要认为这是一个淘汰因素。我认为必须有一个微妙的优化库可以共享,我不...