{1, 2, 3}
的幂集是:
{{}, {2}, {3}, {2, 3}, {1, 2}, {1, 3}, {1, 2, 3}, {1}}
假设我在 Java 中有一个 Set
:
Set<Integer> mySet = new HashSet<Integer>();
mySet.add(1);
mySet.add(2);
mySet.add(3);
Set<Set<Integer>> powerSet = getPowerset(mySet);
我该如何编写函数 getPowerset,使其具有尽可能复杂的顺序? (我认为它可能是 O(2^n)。)
原文由 Manuel Araoz 发布,翻译遵循 CC BY-SA 4.0 许可协议
是的,它是
O(2^n)
确实,因为你需要生成2^n
可能的组合。这是一个使用泛型和集合的工作实现:并根据您的示例输入进行测试: