美文网首页
0090. 子集 II

0090. 子集 II

作者: 蓝笔头 | 来源:发表于2021-09-06 13:04 被阅读0次

题目地址

https://leetcode-cn.com/problems/subsets-ii/

题目描述

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

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

示例:

输入: [1,2,2]
输出:
[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]

题解

回溯算法

需要过滤已经走过的路径

class Solution {
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);

        List<List<Integer>> results = new ArrayList<>();
        dfs(results, new ArrayList<>(), nums, 0);

        return results;
    }

    public void dfs(List<List<Integer>> results, List<Integer> result, int[] nums, int index) {
        results.add(new ArrayList<>(result));

        for (int i = index; i < nums.length; ++ i) {
            // 做选择
            result.add(nums[i]);

            dfs(results, result, nums, i + 1);

            // 撤回选择
            result.remove(result.size() - 1);

             // 如果 nums[i] == nums[i + 1],表示当前分支已经走过了
            // 因此要跳过
            while (i + 1 < nums.length && nums[i] == nums[i + 1]) {
                i ++;
            }
        }
    }
}

相关文章

  • 0090. 子集 II

    题目地址 https://leetcode-cn.com/problems/subsets-ii/[https:/...

  • LeetCode 0090. Subsets II子集II【Py

    Problem LeetCode[https://leetcode.com/problems/subsets-ii...

  • Leetcode 90 子集 II

    90. 子集 II[https://leetcode-cn.com/problems/subsets-ii/] 题...

  • 子集 II

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

  • Leetcode 子集 II

    题目描述 leetcode 第90题:子集 II[https://leetcode-cn.com/problems...

  • 递归、回溯、分治

    递归 (1)子集 方式一:递归算法 方式二:位运算算法 (2)子集II 方法一:递归算法 方法二:位运算 (3)组...

  • 90. Subsets II/子集 II

    Given a collection of integers that might contain duplica...

  • Python Leetcode练习2(4.29/5.2作业)

    90. Subsets II 题目概述:给定一个含有重复数字的集合,求出它的所有子集。注意这些子集中没有相同的两个...

  • 90.子集II

    题目给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集...

  • 子集 II(LeetCode 90)

    题目https://www.jianshu.com/p/3150417100af升级版 给定一个可能包含重复元素的...

网友评论

      本文标题:0090. 子集 II

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