给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
分析:本题是典型的组合问题,由于所有遍历的结果都要!所以没有设置递归终止条件,而是把遍历的路程全部加入结果集!
参考代码:
public List> subsets(int[] nums) {
sup(nums,0);
return ret;
}
List> ret = new ArrayList<>();
LinkedList
private void sup(int[] nums,int index){
ret.add(new ArrayList<>(path));
for(int i=index;i
sup(nums,i+1);
path.removeLast();
}
}
