先上代码:
public class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
List<Integer> temp = new ArrayList<Integer>();
dfs(res,temp,nums,0);
return res;
}
private void dfs(List<List<Integer>> res,List<Integer> temp,int[] nums,int m){
res.add(new ArrayList<Integer>(temp));
for(int i=m;i<nums.length;i++){
temp.add(nums[i]);
dfs(res,temp,nums,i+1);
temp.remove(temp.size()-1);
}
}
}
依旧是一个dfs问题,只不过这次对子矩阵的长度没有限制。
贴上运行结果:(速度略慢,来日改进)
题目与77. Combinations基本一致,来日总结一下dfs问题的套路