【问题标题】:Perumations of size N java Array大小为 N 的 java 数组的排列
【发布时间】:2020-07-11 03:43:12
【问题描述】:

在 C++ 中,可以使用函数 next_permutation 生成数组的排列。有没有类似这种函数的 java 等价物来生成大小为 N 的数组的排列?

我正在尝试提出一个等效的递归实现,但正在努力巩固我的逻辑。

【问题讨论】:

标签: java arrays algorithm permutation


【解决方案1】:

java 中没有这样的内置函数。您必须创建自己的,这并不复杂。我将立即使用解决方案(不一定是最佳解决方案)对此答案进行编辑

public static void printperms(int[] perm, boolean[] used, int k)
{
    if (k == perm.length) print(perm);
    for (int i=0; i<perm.length; i++) {
        if (!used[i]) {
           used[i] = true;
           perm[k] = i;
           printperms(perm, used, k+1);
           used[i] = false;
        }
    }
}

然后您可以创建一个新方法来调用它:

public void perms(int n){
    printperms(new int[n], new boolean[n], 0);
}

最后,在我有print 方法的地方,您可以将数组添加到列表中,这样您就可以将它们全部收集到一个列表中,或者您可以将其打印出来。你的选择。随心所欲。

【讨论】:

  • 你必须实现你自己的功能,自己尝试,如果你觉得有任何问题分享你的代码,我们会在这里帮助你。你可以从baeldung.com/java-array-permutations获得帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 2018-03-21
相关资源
最近更新 更多