通过给定长度为n和k的数组递归

时间:2019-04-15 16:29:01

标签: java recursion

对于输出组合,我有一个长度为'n'且长度为'k'的整数数组B []。最终结果应为数组中长度为“ k”的值的组合。

将其想象为nCk或nCr,其中n是您拥有的数量,k / r是子集的大小。基本上采用我们需要逐段使用的参数,该数组应该是您要修改的参数,然后在准备好将其打印/以字符串形式获取时传递给setToString

k如前所述,子集的大小,然后我将帮助您计算递归。 int [] B包含有关子集中哪些元素的信息。

我了解问题所在,但不确定如何进行。

例如,如果我的输入为4 2,则输出为:

{1,2}

{1,3}

{1,4}

{2,3}

{2,4}

{3,4}

这是我当前拥有的全部代码:

static void subsets(int []B, int k, int i){
      //int n = 0;

      if(k==0) {
        System.out.println("Not true.");
     } 

    if(k > B.length - i) {
        return ; //returns nothing
      }

    if (k > 0){
        subsets(B, k, i+1);

     }

    else {

        subsets(B, k-1, i+1);
      }

      }

0 个答案:

没有答案