小编zee*_*ner的帖子

迭代地找到字符数组k的所有组合(N选择K)

我目前正在将这个问题作为一个个人项目来处理.

基本上:

  • 给定一系列元素,例如E = {1,2,a,b}和
  • 给定数字K,例如K = 2
  • 我想要返回大小为K的E的所有组合(E选择K)
  • 例如{{1,1},{1,2},{1,a},{1,b},{2,1},...,{b,1},{b,2},{b ,a},{b,b}}

我已经使用以下函数递归地实现了这个:

char[] pool = new char[]{'1', '2', '3'};

public void buildStringRec(char[] root, int pos, int length){
    for(char c : pool){
        char[] newRoot = root.clone();
        newRoot[pos] = c;
        if(pos+1 < length){
            buildStringRec(newRoot, pos+1, length);
        } else{
            System.out.println(String.valueOf(root));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

poolE和lengthK 在哪里?

所以我们打电话给:buildStringRec(new char[2], 0, 2);得到

11
12
13
21
22
23
31
32
33
Run Code Online (Sandbox Code Playgroud)

这可以迭代完成吗?我一直试图围绕如何使用可变长度来做这件事.

任何帮助,将不胜感激!如果需要,我可以按照原样发布我的代码,但由于我的重试,它发生频率变化,我发布它几乎没用.

另外,我不想使用Apache或String Builder这样做,因为我想了解如何做到这一点的概念.我不是简单地要求代码.只要清楚地解释,伪代码就可以了.

谢谢!

编辑

我正在使用这个网站测试提供给我的所有选项:https: …

iteration algorithm combinations permutation variable-length

8
推荐指数
1
解决办法
7431
查看次数