给定一个整数数组 nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
输入:nums = [1,2,3] 输出:[[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]]
class Solution {List<Integer> kk = new ArrayList<>();List<List<Integer>> res = new ArrayList<List<Integer>>();public List<List<Integer>> subsets(int[] nums) {dfs(0,nums);return res;}public void dfs(int cur,int[] nums){if(cur == nums.length){res.add(new ArrayList<Integer>(kk));return ;}kk.add(nums[cur]);dfs(cur+1,nums);kk.remove(kk.size()-1);dfs(cur+1,nums);}
}