Backtracking
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]public class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> results = new ArrayList<List<Integer>>();
helper(nums,results,new ArrayList<Integer>(),0);
return results;
}
public void helper(int[] nums,
List<List<Integer>> res,
List<Integer> cur,
int start){
List<Integer> subset = new ArrayList<Integer>(cur);
res.add(subset);
for(int i=start;i<=nums.length-1;i++){
cur.add(nums[i]);
helper(nums,res,cur,i+1);
cur.remove(cur.size()-1);
}
}
}Last updated