/**
* 获取一个集合的所有子集
* @param set
* @return
*/
public ArrayList<ArrayList<Integer>> getSubSet(ArrayList<Integer> set){
ArrayList<ArrayList<Integer>> returnValue = new ArrayList<>();
if(0 == set.size()){
returnValue.add(new ArrayList<Integer>());
return returnValue;
}
int num = set.get(0);
set.remove(0);
ArrayList<ArrayList<Integer>> subset = getSubSet(set);
returnValue.addAll(subset);
for(ArrayList<Integer> x : subset)
{
//addAll是浅层拷贝
ArrayList<Integer> y = (ArrayList<Integer>) x.clone();
x.add(num);
returnValue.add(x);
}
return returnValue;
}
获取一个集合的所有子集
最新推荐文章于 2021-02-19 01:18:51 发布