我想找到给定集合的所有子集.我得到的字符串集定义如下:HashSet<String> L我想在循环中使用它的所有子集:for each
做一点事.这样做有一个简单的方法,复杂度低吗?
Sha*_*nKo 12
好的,我使用了这个算法(L是一组字符串):
powerSet = new HashSet<List<String>>();
List<String> mainList = new ArrayList<String>(L);
buildPowerSet(mainList,mainList.size());
Run Code Online (Sandbox Code Playgroud)
和,
private static void buildPowerSet(List<String> list, int count)
{
powerSet.add(list);
for(int i=0; i<list.size(); i++)
{
List<String> temp = new ArrayList<String>(list);
temp.remove(i);
buildPowerSet(temp, temp.size());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13874 次 |
| 最近记录: |