在作为特定集合的子集的有限集合中找到集合的最佳算法是什么?
例如,如果
A = {1, 2}
B = {2, 3, 4}
C = {3, 5}
D = {6}
X ={1, 2, 3, 5}
那么,A 和 C 是 X 的子集。
有没有一种算法可以以线性时间复杂度做到这一点?
实现注意:集合的成员通常来自非常有限的范围,因此,使用 C++ bitset 来实现算法可能是一个好主意。不能吗?
编辑:集合中的集合数量通常非常大于 X 中的元素数量(在示例中)。有没有办法根据 X 中的元素数量来做到这一点?可能使用哈希或其他东西?