public class Test24 {
public List<List<Integer>> subsets(int[] nums){
List<List<Integer>> result = new ArrayList<>();
List<Integer> temp = new ArrayList<>();
result.add(temp);
function(result,temp,0,nums);
return result;
}
public void function(List<List<Integer>> result,List<Integer> temp,int start,int[] nums){
if (start==nums.length-1) {
List<Integer> temp1 = new ArrayList<>();
temp1.addAll(temp);
temp1.add(nums[start]);
result.add(temp1);
return;
}
for (int i = start; i <=nums.length-1; i++) {
List<Integer> temp2 = new ArrayList<>();
temp2.addAll(temp);
temp2.add(nums[i]);
result.add(temp2);
function(result,temp2,i+1,nums);
}
}
}