对于输出组合,我有一个长度为'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);
}
}