【发布时间】:2011-12-12 15:41:07
【问题描述】:
我有一组带有数字的集合。说
A = {-2, 5, 6, 8}
B = {-2, 4}
C = {-2, 4, 6, 8}
D = {1, -2, 15}
E = {1, 4, 15}
F = {1, 15}
G = {2, 5, 6, 15}
H = {2, 6, 15}
现在我想找到一组 4 个数字并找到属于这个集合的集合。
例如,我可以在这里定义一个集合X = {1, -2, 4, 15},并且可以看到 B、D、E 和 F 属于这个集合。找到这些集合并不难。
但是,我面临的问题是我想识别此集合中长度为 m 个数字的所有集合。所以事实上,当把上面的例子作为输入时,一个算法得到m = 4和{A,B,C,D,E,F,G,H}作为输入并给我{B,D,E,F}和{B, C}(因为它们都包含集合中的数字{-2,- 4、6、8})。
我想出答案的唯一方法是生成所有可能的length = 4 集合,其中包含可用集合中的数字,并确定每个集合是否适合。这似乎有点生硬。
有什么好的建议吗? (Java 或 PHP)?
【问题讨论】:
-
E 和 F 不包含任何 {-2,-4,6,8},那么为什么要返回呢?
-
您想找到长度为 4 的最小组数吗?并输出它们?
-
不应输出如下:{A}, {B, C}, {B, D, E, F}, {B, E, F}, {D, E, F }, {F, H}, {G, H}?
-
@Dialectus:你说得对。
标签: java algorithm collections set