问题标签 [set-intersection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22929 浏览

sql - 试图理解sql查询中的“全部除外”

我遇到了这个例子,我不明白它是什么意思。

关系:Frequents(饮酒者,酒吧),Likes(饮酒者,啤酒)

在这种情况下 ALL 会做什么?结果与下面的查询有何不同?

0 投票
1 回答
1059 浏览

algorithm - 有效计算 n 个集合的交集

我有n由 标识的集合setId,每个集合都可以包含任意数量的一对元素(elementId, priority)

我的算法应该接受输入二setId,并在输出中给出一个包含第一个m元素的集合,这些元素位于两个输入集合的交集中并且具有最高优先级(优先级总和)。

例子:

我的问题是:假设我有无限的空间,我可以使用什么来优化性能的最佳数据结构?

当然,预先计算所有可能的交集不是一个有效的答案。

编辑

现实数字:

  • n, 集数, 是~ 10^6
  • 集合的平均基数是~ 5*10^3.
0 投票
1 回答
518 浏览

c++ - C++:如何在包含用户定义结构的两个向量上使用 set_intersection?

我有两个非常简单的结构向量:

我目前正在尝试像这样运行 set_intersection :

我猜我需要以某种方式覆盖一些比较器?但我不确定如何定义两个 Face 对象之间的相等性......

任何帮助将非常感激。

0 投票
1 回答
563 浏览

c++ - 使用文本文件设置交叉点 C++

我目前正在编写一个代码来交叉两个文本文件集。我是 C++ 新手,所以编码不好。请告诉我我在这段代码中遗漏了什么或输入错误。谢谢你帮助我。

0 投票
2 回答
712 浏览

c++11 - n 个向量的交集

我是编程新手,最近遇到了一个问题,即查找已排序整数的 n 个向量(整数向量)的交集。我想出的方法具有 O(n^2) 的复杂性,我正在使用 std::set_intersect 函数。

我想出的方法是使用两个向量:第一个向量对应于我拥有的第一个向量,第二个对应于第二个向量。我在两者上调用 set 交集并覆盖第一个向量,然后在第二个向量上使用向量清除功能。然后我将下一个向量覆盖到第二个向量,并重复该过程,最终返回第一个向量。

我确实相信有一种更有效的方式来解决这个问题,但目前,我想不出更有效的方式。对此问题的任何帮助将不胜感激。

0 投票
1 回答
128 浏览

r - R:如何有效地找出data.frame A是否包含在data.frame B中?

为了找出数据框是否是数据框df.a的子集,df.b我执行了以下操作:

最后一行给出TRUE,因此df.a包含在df.b.

现在我想知道是否有更优雅——可能更有效——的方式来回答这个问题?

此任务也很容易扩展以查找两个给定数据帧之间的交集,可能仅基于列的子集。

帮助将不胜感激。

0 投票
2 回答
711 浏览

algorithm - 两个最大堆的交集

我有两个最大堆(以数组表示),大小为 m 的 H1 和大小为 n 的 H2,n>m。我必须使用来自 H1 和 H2 交集的元素创建第三个最大堆。

基本解决方案(扫描两个数组)需要 O(n*m) 时间,并且没有利用最大堆属性。

其他想法?

0 投票
3 回答
369 浏览

javascript - N个已排序整数数组的交集与限制

给定N排序的整数数组(无重复),我想计算limit它们交集的第一个整数。

例如,给定以下数组:

交点是[5, 10, 20],所以如果limit = 2,结果应该是[5, 10]

给定的数组不应该被改变。

我的尝试如下。这里的操场。

有没有更有效(更快)的方法来实现这一目标?

希望有一个jsperf比较。


0 投票
1 回答
2196 浏览

arrays - 在 Fortran 中查找两个数组的交集

我正在尝试在 Fortran 中生成两个一维数组的交集。

目的是使用这个交集作为掩码,maxloc以便我可以将一个数组中的最多几个元素拉到另一个数组中(类似于在最大堆中重复根删除的行为)。

目前,在将索引处的maxloc值插入第二个数组后,我只是将找到的索引处的值设置为零,但我希望 Fortran 有一个聪明的掩码相关方法。(在这个最大检索过程中保持原始数组完好无损也很好)

0 投票
1 回答
2226 浏览

r - 列表的多个交集

我有 4 个列表

我想知道哪些列表有共同的元素。在此示例中,列出bc具有共同的元素 7。

蛮力方法是采用列表的每个组合并找到交集。在 R 中还有其他有效的方法吗?

另一种方法是从所有列表中创建一个列表并找到重复项。然后也许我们可以有一个映射函数来指示这些重复项来自哪个原始列表。但我不太确定该怎么做。我偶然发现了这个帖子

查找重复行的索引

我在想我们是否可以修改它以找出具有重复项的实际列表。

我必须对多组列表重复此过程。非常感谢任何建议/想法!提前致谢