[刷题]Subsets II

原创 2015年07月08日 09:49:31

[LintCode]Subsets II

class Solution {
    /**
     * @param S: A set of numbers.
     * @return: A list of lists. All valid subsets.
     */
    public ArrayList<ArrayList<Integer>> subsetsWithDup(ArrayList<Integer> S) {
        // 2015-08-28
        // S中可能有重复元素,每个元素只可用一次
        // 解集中不可含重复的解
        // 解中可以含重复元素
        ArrayList<ArrayList<Integer>> rst = new ArrayList<>();
        if (S == null || S.size() == 0) {
            return rst;
        }
        Collections.sort(S);
        ArrayList<Integer> list = new ArrayList<>();
        helper(S, rst, list, 0);
        return rst;
    }
    
    private void helper(ArrayList<Integer> S, ArrayList<ArrayList<Integer>> rst, 
            ArrayList<Integer> list, int pos) {
        rst.add(new ArrayList<Integer>(list));
        // i从pos开始,不用再控制数的深度
        for (int i = pos; i < S.size(); i++) {
            // 控制树的分支 关键  
            if (i != pos && S.get(i - 1) == S.get(i)) {
                continue;
            }
            list.add(S.get(i));
            helper(S, rst, list, i + 1);
            list.remove(list.size() - 1);
        }
    }
}


LeetCode Subsets 和 LeetCode Subsets II

LeetCode Subsets 和 LeetCode Subsets II 给出一个数组生成该数组所有元素的组合。 基本思路先对数组排序,然后循环+dfs,生成指定元素数目为:1,2,...arr...
  • worldwindjp
  • worldwindjp
  • 2014年04月09日 22:02
  • 10663

leetcode解题之 77. Combinations&78. Subsets&90. Subsets II java 版(求所有子集)

leetcode解题之 Subsets java 版(求所有子集) ,90. Subsets II ,78. Subsets,77. Combinations...
  • mine_song
  • mine_song
  • 2017年04月08日 19:36
  • 390

【LeetCode with Python】 Subsets II

Given a collection of integers that might contain duplicates, S, return all possible subsets. Note:...
  • nerv3x3
  • nerv3x3
  • 2014年07月04日 16:11
  • 1753

[LeetCode 90] Subsets II

题目链接:subsets-ii import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; ...
  • ever223
  • ever223
  • 2015年03月28日 00:32
  • 1032

Subsets II -- LeetCode

原题链接: http://oj.leetcode.com/problems/subsets-ii/ 这道题跟Subsets一样是经典的NP问题--求子集。比Subsets稍微复杂一些的是这里的集合中...
  • linhuanmars
  • linhuanmars
  • 2014年04月28日 04:23
  • 11881

LeetCode90:Subsets II

Given a collection of integers that might contain duplicates, nums, return all possible subsets.Note...
  • u012501459
  • u012501459
  • 2015年07月08日 11:12
  • 1099

90. Subsets II Leetcode Python

Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
  • hyperbolechi
  • hyperbolechi
  • 2015年01月15日 06:03
  • 1191

LeetCode 90:Subsets II

Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...
  • geekmanong
  • geekmanong
  • 2016年01月25日 17:09
  • 2045

LeetCode 90 Subsets II--In C++

思路: 由于这道题增加了冗余的属性,所以如果用Subset 1中的暴力递归进行求解的话,会浪费很多时间在扫描判断是否有重复值上。因此,类似于全排列的那个题,想到了在之前的基础上添加一个元素即可形成全...
  • sinat_27564919
  • sinat_27564919
  • 2016年06月04日 16:01
  • 224

回溯法——subsets、subsets-ii数字数组的所有组合

题目描述:subsets Given a set of distinct integers, S, return all possible subsets. Note: Elements...
  • jingsuwen1
  • jingsuwen1
  • 2016年05月28日 20:09
  • 302
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[刷题]Subsets II
举报原因:
原因补充:

(最多只允许输入30个字)