美文网首页算法练习
子集 II(LeetCode 90)

子集 II(LeetCode 90)

作者: 倚剑赏雪 | 来源:发表于2020-02-20 23:20 被阅读0次

题目https://www.jianshu.com/p/3150417100af升级版

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

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

示例:

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

解析

1.同Leetcode78题
2.首先对数组进行排序
3.加入的时候,如果判断与前一位相等直接跳过

代码

 public IList<IList<int>> SubsetsWithDup(int[] nums) {
        IList<IList<int>> res = new List<IList<int>>();
        Array.Sort(nums);//排序
        BackTrackRepeat(0,nums,res,new List<int>());
        return res;
    }

    void BackTrackRepeat(int idx,int[] nums,IList<IList<int>> res,IList<int> temp)
    {
        res.Add(new List<int>(temp));
        for (int i = idx; i < nums.Length; i++)
        {
            if(i>idx&&nums[i] == nums[i-1]) continue;
            temp.Add(nums[i]);
            BackTrackRepeat(i+1,nums,res,temp);
            temp.RemoveAt(temp.Count-1);
        }
    }

相关文章

  • Leetcode 90 子集 II

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

  • Leetcode 子集 II

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

  • 子集 II(LeetCode 90)

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

  • LeetCode - #90 子集 II

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swi...

  • LeetCode 力扣 90. 子集 II

    题目描述(中等难度) 78题升级版,大家可以先做 78 题。给定一个数组,输出所有它的子数组。区别在于,这道题给定...

  • 2019-05-24LeetCode90. 子集 II

    思考方法当然先排序,然后如果不重复那自然简单的把原先的子集扩充一倍,如果重复的话,由于地位和重复的数字一样,就只能...

  • python实现leetcode之90. 子集 II

    解题思路 遇事不决先排序 定义一个组合N选k的函数然后正对整个数组,从N选0,N选1,...N选k,一直到N选N然...

  • 90.子集II

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

  • 90.子集 II

    原题 https://leetcode-cn.com/problems/subsets-ii/ 解题思路 同 78...

  • 90. Subsets II/子集 II

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

网友评论

    本文标题:子集 II(LeetCode 90)

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