java的子集

时间:2011-01-07 14:11:45

标签: java subset

  

可能重复:
  How to find all possible subsets of a given array?

我必须找到给定数组的所有可能子集。你知道任何算法吗?

1 个答案:

答案 0 :(得分:2)

这是一个很长的镜头,但是如果你需要一个函数来生成{},{1},{2},{3},{1,2},{2,3},{1,3},来自{1,2,3}的{1,2,3}。您可以生成从0到2 ^ count(array)-1的二进制数,并选择与生成的数字中的二进制数字对应的数组项。

000 -> {}
100 -> {1}
010 -> {2}
110 -> {1,2}
001 -> {3}
101 -> {1,3}
011 -> {2,3}
111 -> {1,2,3}

//左侧二进制系统又称懒惰二进制系统