【发布时间】:2013-08-26 06:04:03
【问题描述】:
我对 Java 中的递归不是很熟悉。我正在尝试编写一种方法来计算整数数组的所有排列。我需要修改以下完美的工作方法,以便将它们插入到二维数组中,而不是打印以筛选数组的所有排列。因此该方法的输入是 n 个整数数组,输出是一个具有 n! 行和 n 列的二维数组。我需要修改的程序是这样的:
public static void permute(int[] array, int k)
{
for(int i=k; i<array.length; i++)
{
int temp;
temp = array[i];
array[i] = array[k];
array[k] = temp;
permute(array, k+1);
int temp2;
temp2 = array[i];
array[i] = array[k];
array[k] = temp2;
}
if (k == array.length-1)
{
Array.printValues(array);
}
}
所以,我需要的是这样的:
public static int[][] permute(int[] array, int k)
{
//code here
}
谢谢。
【问题讨论】:
-
如果你的原始数组的元素个数大于
12,你的输出数组的行数会溢出最大整数范围,你明白吗?
标签: java arrays recursion permutation