问题标签 [set]

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 投票
2 回答
1091 浏览

java - 在 Java 中生成分区

我得到一个整数(我们称之为 x),我需要生成一个数组数组,其中每个子数组是一个元素列表,这些元素是给定整数集合中的一个,以及每个子数组的所有元素的总和是 x。数组数组需要包含这种形式的所有可能的不同子数组。

例如,如果 x 是 3 并且可能元素的列表是 {1, 2},我希望生成 {{1, 2}, {2, 1}}。

执行此操作的最佳方法是什么(在伪代码或 Java 中)?这个二维数组是存储此类数据的最佳方式吗?我想不出比这更好的了,但我猜那里有什么东西。

0 投票
5 回答
2743 浏览

algorithm - 合并至少共享 2 个元素的集合的算法

给定一个集合列表:

  • S_1:[1、2、3、4]
  • S_2:[3、4、5、6、7]
  • S_3 : [ 8, 9, 10, 11 ]
  • S_4:[1、8、12、13]
  • S_5 : [ 6, 7, 14, 15, 16, 17 ]

合并所有共享至少 2 个元素的集合的最有效方法是什么?我想这类似于连接组件问题。所以结果是:

  • [ 1, 2, 3, 4, 5, 6, 7, 14, 15, 16, 17] (S_1 UNION S_2 UNION S_5)
  • [ 8, 9, 10, 11 ]
  • [ 1, 8, 12, 13 ](S_4 与 S_1 共享 1,与 S_3 共享 8,但未合并,因为它们仅共享一个元素)

朴素的实现是 O(N^2),其中 N 是集合的数量,这对我们来说是行不通的。这需要对数百万组有效。

0 投票
4 回答
16519 浏览

algorithm - 集合并集运算的运行时间

给定两个集合 A 和 B,找到它们并集的常用算法是什么,它的运行时间是多少?

我的直觉:

添加检查碰撞,即 O(1),然后添加元素,即 (??)。这样做 n 次(其中 n 是 |a| + |b|)。所以这是 O(n * x),其中 x 是添加操作的平均运行时间。

它是否正确?

0 投票
1 回答
10363 浏览

vba - 设置/获取网络 Cookie

假设我没有运行任何类型的服务器端脚本,我如何从 VBA 代码中获取 cookie setget

0 投票
3 回答
3854 浏览

delphi - 将 Delphi 集存储在数据集中的最佳方法是什么?

标题基本概括了所有内容。我正在使用 TClientDataset 来存储对象数组,其中一个对象具有定义为一枚举类型的成员。据我了解,Delphi 集是位域,其大小可以从 1 到 32 个字节不等,具体取决于它们包含的数据量,而 Delphi 没有定义 TSetField。我应该使用什么样的字段来加载这个值?

0 投票
1 回答
370 浏览

python - 函数集用什么来检查两个对象是否不同?

简单代码:

好的,在结果集中没有重复项。如果列表中的对象不是 int 而是我定义的对象怎么办?它检查什么方法来了解它们是否不同?我用一些对象实现了 __eq__ 和 __cmp__ 但set似乎没有使用它们:\

有谁知道如何解决这个问题?

0 投票
3 回答
1369 浏览

c++ - 原位删除元素的最佳方法

我有一组要迭代的对象,但是我可能会在迭代期间决定现在需要删除这些对象中的一个(或多个)。

我的代码如下:

但是,当然,当我擦除一个对象时,我得到一个错误:“映射/设置迭代器不可增加”。有人可以提出更好的方法吗?

请参阅: 如果在从头到尾迭代时在地图元素上调用 erase() 会发生什么?

0 投票
3 回答
3934 浏览

c# - .NET 通用集?

.NET 中是否有实现“设置”行为的通用容器?

我知道我可以只使用 a Dictionary<T, Object>(并且可能添加nulls为值),因为它的键充当一个集合,但我很好奇是否有现成的东西。

0 投票
4 回答
3329 浏览

algorithm - 表示稀疏整数集?

以紧凑和快速的方式表示稀疏整数集(真正的 C 内存地址)的好方法是什么。我已经知道诸如位向量和游程编码之类的显而易见的事情。但我想要比每个集合元素一个单词更紧凑的东西。我需要添加和删除元素并测试成员资格。我不需要其他集合操作,比如联合。

多年前我读过一个这样的图书馆,但后来忘记了它的名字。我认为它是由惠普作为开源发布的,并且有一个女人的名字。

0 投票
5 回答
1520 浏览

c# - 在 C# 中生成整数集

在 F# 中,您可以生成一组数字,只需说出 [1..100]。

我想在 C# 中做类似的事情。到目前为止,这是我想出的:

通过这样做,我现在可以通过说 1.To(100) 创建一个集合

不幸的是,这不像 [1..100] 那样可读。有没有人想出更好的方法在 C# 中做到这一点?如果它是小写的,它是否更具可读性?1.to(100),例如?或者,“到”是一个坏词吗?像 1.Through(100) 这样的东西更具可读性吗?

只是在寻找一些想法。有没有其他人想出一个更优雅的解决方案?

编辑: 阅读回复后,我使用范围重写了我的 To 方法:

我仍在寻找有关 1.To(100) 可读性的想法