[英]Perumations of size N java Array
在 C++ 中,可以使用函数next_permutation
生成数组的排列。 是否有 Java 等价于这样的函数来生成大小为 N 的数组的排列?
我正在尝试提出一个等效的递归实现,但正在努力巩固我的逻辑。
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
方法的地方,您可以将数组添加到列表中,以便您可以将它们全部收集在列表中,或者您可以将其打印出来。 你的选择。 随心所欲。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.