特定のセットのすべてのサブセットを見つけたい。次のように定義された文字列セットを取得しました:HashSet<String> L
そして、ループ内でそのすべてのサブセットを次のように使用したい: for each do something . それを行うための複雑さの少ない簡単な方法はありますか?
14143 次
2 に答える
12
OK、私はこのアルゴリズムを使用しました (L
は文字列のセットです):
powerSet = new HashSet<List<String>>();
List<String> mainList = new ArrayList<String>(L);
buildPowerSet(mainList,mainList.size());
と、
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());
}
}
于 2013-09-14T13:47:22.053 に答える