思路
利用深度优先遍历算法,对于每个数有选或不选两种抉择,每次遍历到ids==len时将p加入答案中
解题过程
选中当前数字,调用dfs函数之后记得还原
Code
class Solution {
public int len;
public List<List<Integer>> list=new ArrayList<>();
public List<List<Integer>> subsets(int[] nums) {
len=nums.length;
List<Integer> p=new ArrayList<>();
dfs(0,p,nums);
return list;
}
public void dfs(int ids,List<Integer> p,int []nums){
if(ids==len){
list.add(new ArrayList(p));
return;
}
dfs(ids+1,p,nums);
p.add(nums[ids]);
dfs(ids+1,p,nums);
p.remove(p.size()+-1);
}
}
作者:菜卷
链接:https://leetcode.cn/problems/subsets/solutions/2902071/zi-ji-by-ashi-jian-chong-dan-liao-shi-ya-0bm6/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。