leetcode78 子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]
链接:https://leetcode-cn.com/problems/subsets

 List<List<Integer>> ans=new ArrayList<>();
    public List<List<Integer>> subsets(int[] nums) {
        dfs(0,new ArrayList<>(),nums);
        return ans;
    }
    public void dfs(int indx,ArrayList<Integer> combine,int[] nums)
    {
        if(indx>=nums.length)
        {
            ans.add(new ArrayList<>(combine));
            return;
        }
        //no
        dfs(indx+1,combine,nums);
        //yes
        combine.add(nums[indx]);
        dfs(indx+1,combine,nums);
        combine.remove(combine.size()-1);

    }
posted @ 2021-08-20 20:47  LiangLiangAA  阅读(21)  评论(0编辑  收藏  举报
theme: { name: 'geek', avatar: '', headerBackground: '' // ... },