78.子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
方法一:递归
开始假设输出子集为空,每一步都向子集添加新的整数,并生成新的子集。
class Solution {
// 从前往后遍历, 遇到一个数, 之前的所有集合添加上这个数组成新的子集
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
if(nums == null || nums.length < 1) {
return res;
}
//初始化:添加一个空集[]
res.add(new ArrayList<>());
for(int i = 0; i < nums.length; i++) {
//之前的所有集合个数
int size = res.size();
for(int j = 0; j < size; j++) {
List<Integer> list = res.get(j);
List<Integer> tempList = new ArrayList<>(list);
tempList.add(nums[i]);
res.add(tempList);
}
}
return res;
}
}