问题标签 [set-union]
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.
algorithm - 所有相交集的并集
给定具有多个属性的对象列表,我需要找到由所有相交子集的并集创建的集合列表。
具体来说,这些是 Person 对象,每个对象都有许多属性。我需要根据一些唯一标识符(如 SSN、DLN 等)创建一个“主”集列表。
例如,如果人 A 和人 B 具有相同的 SSN,他们会创建一个集合 i。然后如果人 B 和 C 有相同的 DLN,他们创建一个集合 ii。人员 D 和 E 具有相同的 SSN,但它(以及所有其他标识符)与人员 A、B 或 C 的任何标识符都不匹配。合并所有相交的子集后,我最终会得到一组人员 A、B、C和另一组人 D、E。
这是我的解决方案的伪代码。我很好奇是否有人已经提出了一种更有效的方法来合并所有可能的相交集。请记住,集合之间的链接可能是 X 个人长(即 A 通过 SSN 匹配 B,B 通过 DLN 匹配 C,C 通过 SSN 匹配 D,并且 D 通过其他标识符匹配 E,这将导致 Persons AE 在一个集合中)。还假设将在其中实现的语言支持集合操作。
python - 创建多个列表中包含的所有值的联合的 Pythonic 方法
我有一个列表列表:
我想展平此列表并删除所有重复项;或者,换句话说,应用集合联合操作:
最简单的方法是什么?
java - 在 O(m+n) 次中联合、相交、差异大 IntSet
从我的问题
我已经完成了我的插入方法。
现在我尝试找出如何构建并集、交集和差分方法来对 2 个 IntSet 进行操作。
请注意,IntSet 的元素数量很大,我需要在O(m+n)时间内完成,其中 m 和 n 是两个 IntSet 的元素数量。
例如 IntSet
我该怎么做?
PS它可以使用归并排序吗?
编辑:
这是我的联合代码
c++ - 什么是正确的 std::set_union 代码?
该站点声称set_union
等效于以下代码:
但这似乎很奇怪:如果其中一个范围为空,那不会崩溃(或导致其他未定义的行为)吗?这两个if
子句不应该在循环的开头while
,而不是结尾吗?
c++ - 我对 set.union (C++) 有疑问
我正在尝试合并两组(在向量中)。
setA 包含 a、b。setB 包含 a、c。
联合之后,结果应该包含a,b,c。但是,该程序不工作,它有某种调试错误。
有谁知道问题是什么?
c++ - c++ set_union 迭代器
我对这段代码有一些问题,代码正在编译,但是当我尝试测试向量的内容时,测试失败了。这是代码:
这是我正在运行的测试:
}
当我运行这些测试时,第一个测试通过,但第二个测试返回向量中数字 1 的 0 个实例,其中答案应该是 1 个实例。
prolog - Prolog - union 不检查重复项或列表是否有序
我正在尝试在 Prolog 中编写联合函数,但遇到了一些麻烦。我已经查找了示例并列出了联合的内置示例,但我正在为作业编写自己的示例。当列表具有重复值和/或列表的顺序不是升序时,我注意到一些奇怪的结果。以下是内置的联合代码:
我相信这里的伪代码是我们希望在结果中找到所有列表 1,一旦用尽,我们比较列表 2 和列表 3。它们应该是相同的。但是,这不会检查订单。
为什么这是假的?清单 1 和清单 3 是相同的集合,即使顺序不同!
这两者有什么不同?它们应该产生相同的结果。但是,由于函数的编写方式,最后我们只比较了列表 2 和列表 3,它们在第 25 行是不同的。
我的问题是。. . 有没有更好的方法来编写这些函数,以便正确处理重复项并且顺序无关紧要?有人会假设内置方法可以解决问题,但没有骰子。
c++ - 如何在 OpenCV 中加入/联合轮廓?
对于轮廓,作为“加入”的这种操作是否存在/合理?由于轮廓在平面上划定了某些区域,因此可以将多个轮廓合并为集合。
不是吗?
如果是,那么如何合并轮廓?
c++ - 设置联合不工作
'left' 是左侧(已设置)中每个元素的 std::set 的 std::vector,我试图通过迭代'left'来对另一个集合进行设置联合操作。
为什么下面的代码不起作用。我正在尝试做两组的集合。
错误/usr/include/c++/4.3/bits/stl_algo.h:5078:错误:分配只读位置'__result.std::_Rb_tree_const_iterator<_Tp>::operator* with _Tp = int'</p>
c++ - 使用复印功能的打印设置
我遇到的问题是我需要使用 copy 函数从 union_set 函数打印结果集。(所以我不允许将输出作为 set_union 函数的最后一项)。我似乎无法让 lastAunionB 指针的复制功能正常工作(我还必须再做几次)。我目前所拥有的只是我最后一次尝试回答,尽管我尝试了更多的东西。我在使用复制功能时做错了什么?这是代码。
}