本题链接
描述
思路
选出全部子集,那么对于每个元素都拥有选择与不选择两种状态
在dfs中对两种状态分别递归
public class t2 {
List<List<Integer>> res=new ArrayList<>();//子集集合
List<Integer> path=new ArrayList<>();//子集路径
public List<List<Integer>> subsets(int[] nums) {
dfs(nums,0);
return res;
}
void dfs(int[] nums,int index){
if(index==nums.length){//index为下标
res.add(new ArrayList<>(path));
return;
}
//选择nums[index]
path.add(nums[index]);
dfs(nums,index+1);
//不选择
path.remove(path.size()-1);
dfs(nums,index+1);
}
}