与另一个列表相比,从一个列表中删除重复项是否属于 NAND 操作?
一样的列表
list1 = {2,3,4,5,9}
我有一个像另一个列表
list2 = {3,5,10,9}
,就像我想要一些操作(例如list.Operation(list2)),这样我就可以返回list1
,因为
list1 = {2,4}
它与执行NAND操作相同吗?
I have a list like
list1 = {2,3,4,5,9}
another list like
list2 = {3,5,10,9}
I want some operation (eg. list.Operation(list2)) so that I can get back list1
as
list1 = {2,4}
Is it the same as doing a NAND operation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不会。NAND 运算适用于两个布尔值。你有两个清单。
这称为差异或补充。
No. A NAND operation works on two booleans. You have two lists.
This is called a difference or complement.
NAND,或非-并且包括不在这两个集合中的所有“位”。隐含了上限,例如 7、15、31 或 63。位是最好用 BitSet 建模的真/假值的排序集合。
例如
作为二进制它想要
NAND, or not-and includes all the "bits" which are not in both sets. An upper limit is implied e.g. 7, 15, 31 or 63. bits are a sorted set, of true/false values best modelled with a BitSet.
e.g.
as binary it would like
你所描述的,是一个固定的差异。
在 C++ 中,您可以使用
std::set_difference
。What you describe, is a set difference.
In C++, you could use
std::set_difference
.您正在寻找
set_difference
但这需要对两个列表进行排序。如果它们没有排序,您始终可以执行明显的O(n^2)
算法。You're looking for
set_difference
but that requires both lists to be sorted. If they aren't sorted you can always do the obviousO(n^2)
algorithm.