问题标签 [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.
java - 在 Java 中生成分区
我得到一个整数(我们称之为 x),我需要生成一个数组数组,其中每个子数组是一个元素列表,这些元素是给定整数集合中的一个,以及每个子数组的所有元素的总和是 x。数组数组需要包含这种形式的所有可能的不同子数组。
例如,如果 x 是 3 并且可能元素的列表是 {1, 2},我希望生成 {{1, 2}, {2, 1}}。
执行此操作的最佳方法是什么(在伪代码或 Java 中)?这个二维数组是存储此类数据的最佳方式吗?我想不出比这更好的了,但我猜那里有什么东西。
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 是集合的数量,这对我们来说是行不通的。这需要对数百万组有效。
algorithm - 集合并集运算的运行时间
给定两个集合 A 和 B,找到它们并集的常用算法是什么,它的运行时间是多少?
我的直觉:
添加检查碰撞,即 O(1),然后添加元素,即 (??)。这样做 n 次(其中 n 是 |a| + |b|)。所以这是 O(n * x),其中 x 是添加操作的平均运行时间。
它是否正确?
vba - 设置/获取网络 Cookie
假设我没有运行任何类型的服务器端脚本,我如何从 VBA 代码中获取 cookie set
?get
delphi - 将 Delphi 集存储在数据集中的最佳方法是什么?
标题基本概括了所有内容。我正在使用 TClientDataset 来存储对象数组,其中一个对象具有定义为一组枚举类型的成员。据我了解,Delphi 集是位域,其大小可以从 1 到 32 个字节不等,具体取决于它们包含的数据量,而 Delphi 没有定义 TSetField。我应该使用什么样的字段来加载这个值?
python - 函数集用什么来检查两个对象是否不同?
简单代码:
好的,在结果集中没有重复项。如果列表中的对象不是 int 而是我定义的对象怎么办?它检查什么方法来了解它们是否不同?我用一些对象实现了 __eq__ 和 __cmp__ 但set似乎没有使用它们:\
有谁知道如何解决这个问题?
c++ - 原位删除元素的最佳方法
我有一组要迭代的对象,但是我可能会在迭代期间决定现在需要删除这些对象中的一个(或多个)。
我的代码如下:
但是,当然,当我擦除一个对象时,我得到一个错误:“映射/设置迭代器不可增加”。有人可以提出更好的方法吗?
c# - .NET 通用集?
.NET 中是否有实现“设置”行为的通用容器?
我知道我可以只使用 a Dictionary<T, Object>
(并且可能添加nulls
为值),因为它的键充当一个集合,但我很好奇是否有现成的东西。
algorithm - 表示稀疏整数集?
以紧凑和快速的方式表示稀疏整数集(真正的 C 内存地址)的好方法是什么。我已经知道诸如位向量和游程编码之类的显而易见的事情。但我想要比每个集合元素一个单词更紧凑的东西。我需要添加和删除元素并测试成员资格。我不需要其他集合操作,比如联合。
多年前我读过一个这样的图书馆,但后来忘记了它的名字。我认为它是由惠普作为开源发布的,并且有一个女人的名字。
c# - 在 C# 中生成整数集
在 F# 中,您可以生成一组数字,只需说出 [1..100]。
我想在 C# 中做类似的事情。到目前为止,这是我想出的:
通过这样做,我现在可以通过说 1.To(100) 创建一个集合
不幸的是,这不像 [1..100] 那样可读。有没有人想出更好的方法在 C# 中做到这一点?如果它是小写的,它是否更具可读性?1.to(100),例如?或者,“到”是一个坏词吗?像 1.Through(100) 这样的东西更具可读性吗?
只是在寻找一些想法。有没有其他人想出一个更优雅的解决方案?
编辑: 阅读回复后,我使用范围重写了我的 To 方法:
我仍在寻找有关 1.To(100) 可读性的想法