描述
现在有一个没有重复元素的整数集合S,求S的所有子集
注意:
你给出的子集中的元素必须按升序排列
给出的解集中不能出现重复的元素
addall(list)与add(list)函数的区别,addall()函数将list函数中所有单个元素分别添加,add()函数将list整个函数作为一个整体添加。
题解:将已生成的列表作为底,依次往里面添加元素形成新的元素集。
public class Solution {
public ArrayList<ArrayList<Integer>> subsets(int[] S) {
ArrayList<ArrayList<Integer>> ans=new ArrayList();
ans.add(new ArrayList<Integer>());
for(int i=0;i<S.length;i++)
{
int size=ans.size();
for(int j=0;j<size;j++)
{
ArrayList<Integer> path=new ArrayList();
path.addAll(ans.get(j));
path.add(S[i]);
ans.add(path);
}
}
return ans;
}
}