给定一个整数数组 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);
}
}