LeetCode 78 子集

// 二进制枚举

class Solution {
    public List> subsets(int[] nums) {
        int  n = nums.length;
        List> res = new ArrayList<>();
        for (int i = 0;i < (1 << n); i ++){
            List ans = new ArrayList<>();
            for (int j = 0; j < n; j++){
                if (((i >> j) & 1) == 1) {
                    ans.add(nums[j]);
                }
            }
            res.add(ans);
        }
        return res;
    }
}

 

你可能感兴趣的:(LeetCode,数组,Java)