class Solution {
public List<List<Integer>> subsets(int[] nums) {
// 1,建立一个result 存储返回值一个集合
List<List<Integer>> result = new ArrayList<>();
// 2,添加空集合是所有集合的子集
result.add(new ArrayList());
// 3,添加指定长度的子集
for(int i =1;i<=nums.length;i++) {
getResult(nums,result,i,0,new ArrayList());
}
return result;
}
private void getResult(int[] nums,List<List<Integer>> result,int len,int index,List subList) {
// 4,递归的结束条件
if(subList.size() == len) {
result.add(new ArrayList(subList));
return;
}
// 5,如果不等于指定的长度
for(int i =index;i<nums.length;i++) {
subList.add(nums[i]);
getResult(nums,result,len,i+1,subList);
subList.remove(subList.size()-1);
}
}
}
78. 子集
于 2023-02-06 11:29:50 首次发布