1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import java.util.ArrayList; import java.util.List;
public class Subset { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> ans = new ArrayList<>(); if (nums.length == 0) return ans; for (int k=0; k<=nums.length; k++) { List<Integer> t = new ArrayList<>(); helper(ans, nums, t, 0, k); } return ans; }
public void helper(List<List<Integer>> ans, int[] nums,List<Integer> t , int k, int width) { if (t.size() == width) { ans.add(new ArrayList<>()); return ; }
for (int i=k; i<nums.length; i++) { t.add(i); helper(ans, nums, t, k+1, width); t.remove(t.size()-1); } } }
|