Java子集

78.子集
在这里插入图片描述

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 all = res.size();//获取当前已经加入的子集
            for (int j = 0; j < all; j++) {//遍历该子集, 给子集中的每个集合加上新的数
                List<Integer> tmp = new ArrayList<>(res.get(j));
                tmp.add(nums[i]);//给子集中的每个集合加上新的数
                res.add(tmp);//将新的集合加进res
            }
        }
        return res;
    }
}