直接遍历,遇到一个数就把所有子集加上该数组成新的子集,遍历完毕即是所有子集。
以1,2,3为例:
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
res.add(new ArrayList<>());
for (int i = 0; i < nums.length; i++) {
int n = res.size();
for (int j = 0; j < n; j++) {
List<Integer> tmp = new ArrayList<>(res.get(j));
tmp.add(nums[i]);
res.add(tmp);
}
}
return res;
}
}