题解
(1)初始化 List 为空集;
(2)遍历 nums ,对每一个 nums 中的数,进行一下操作:
①将该数作为一个子集加入 List ;
②将该数添加到每一个已有的子集中,形成新的子集,将新的子集添加到 List 中;
注:第二层循环不可使用List.size()函数,添加的子集需要是新的完全复制
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> L = new ArrayList<List<Integer>>();
// 加入空集
L.add(new ArrayList<Integer>(Arrays.asList()));
// 循环添加子集
for(int i = 0; i < nums.length; i++) {
int list_size = L.size();
for(int j = 0; j < list_size; j++) {
List<Integer> l = new ArrayList<Integer>(L.get(j));
l.add(nums[i]);
L.add(l);
}
}
return L;
}