leetcode Subset
z
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);
}
}
}