题目:
分析:
这道题和上一道——组合 其实基本一样,无非是k从0~n
代码:
class Solution {
private List<List<Integer>> res=new ArrayList<List<Integer>>();
public List<List<Integer>> subsets(int[] nums) {
int k=nums.length;
for(int i=0;i<=k;i++){
helToCombin(0,nums,i,new ArrayList<Integer>());
}
return res;
}
protected void helToCombin(int now,int[] nums,int k,List<Integer> list){
if(list.size()==k) {
res.add(new ArrayList(list));
}
for(int i=now;i<nums.length;i++){
list.add(nums[i]);
helToCombin(i+1,nums,k,list);
list.remove((Integer) nums[i]);
}
}
}