【问题标题】:How to find all the subsets of an array in java? [duplicate]如何在java中找到数组的所有子集? [复制]
【发布时间】:2015-07-07 07:53:42
【问题描述】:

我需要使用 java.For 例如查找数组的所有子集如果我们有一个集合 {1,2,3} 那么我应该得到 {},{1},{2},{3},{1,2},{2,3},{1.3},{1,2,3}

【问题讨论】:

  • 编写一个递归方法,最初可以将每个元素单独传递给该方法,然后一次传递两个,以此类推。
  • 你尝试过编写代码吗?
  • @SaurabhJhunjhunwala:如果你这样做,你需要注意不要发出重复。
  • @Bathsheba:这实际上取决于您的实施过程。您不断将值从第一个元素传递到最后一个元素。不要试图与以前的元素结合。其次,如果您觉得有可能,请继续将生成的集合添加到父集合中。

标签: java arrays dynamic set


【解决方案1】:

您可以这样做以避免需要递归解决方案。

public static <T> void printCombinations(T[] arr) {
    for(long i = 0, max = 1L << arr.length; i < max; i++) {
        Set<T> ts = new HashSet<>();
        for(int j = 0; j < arr.length; j++) {
            if ((i >> j) != 0)
                ts.add(list.get(j));
        }
        System.out.println(ts);
    }
}

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 2014-12-21
    • 1970-01-01
    • 2013-12-01
    • 2012-04-09
    • 2016-12-08
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多