美文网首页
LeetCode-78. 子集

LeetCode-78. 子集

作者: 傅晨明 | 来源:发表于2020-07-24 10:00 被阅读0次

    78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

    说明:解集不能包含重复的子集。

    示例:


    image.png

    1 递归法

        public List<List<Integer>> subsets(int[] nums) {
            List<List<Integer>> ans = new ArrayList<>();
            if (nums == null) {
                return ans;
            }
            dfs(ans, nums, new ArrayList<Integer>(), 0);
            return ans;
        }
    
        private void dfs(List<List<Integer>> ans, int[] nums, ArrayList<Integer> list, int index) {
            if (index == nums.length) {
                ans.add(new ArrayList<>(list));
                return;
            }
            dfs(ans, nums, list, index + 1);//not pick the number at this index
            list.add(nums[index]);
            dfs(ans, nums, list, index + 1);//pick the number at this index
            //reverse the current state
            list.remove(list.size() - 1);
        }
    

    2 迭代法

    相关文章

      网友评论

          本文标题:LeetCode-78. 子集

          本文链接:https://www.haomeiwen.com/subject/rmadlktx.html