题目:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
示例:
输入:nums = [1,2,3]
输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]
代码:
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);
}
}
}