1. 首页
  2. 软件开发
  3. day-47 子集

day-47 子集

  • 发布于 2024-09-26
  • 1 次阅读


思路
利用深度优先遍历算法,对于每个数有选或不选两种抉择,每次遍历到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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文链接: https://blog.csdn.net/qq_53568730/article/details/141830111