从子集合中组合集合

时间:2013-10-16 23:11:51

标签: arrays algorithm collections

我有以下算法问题。

输入:数组A [1 ... n],整数m

我想提取长度在[2 ... m]范围内的所有可能的子数组,以便使用这些子数组我可以重新创建原始数组A.对子数组有以下约束:

  1. 子阵列长度的总和应等于 原(即n)
  2. 两个或更多子阵列中不应该有相同的元素(这是 基本上重述1)
  3. 输出:组成原始数组A

    的子数组

    例如,我们有A [1 ... 4],m = 2 我们有以下子阵列,其索引为数组A:(1,2)(2,3)(3,4)(1,3)(1,4)(2,4)

    阵列的构造可以使用组合(1,2)(3,4); (2,3)(1,4); (2,4)(1,3)等。

    问题是如何有效地实现算法(如果有任何使用,请特别使用Java)?

0 个答案:

没有答案