【发布时间】:2020-02-21 04:57:39
【问题描述】:
我需要排列一个数组并将每个排列保存在一个 arrayList 中,我使用的是递归方法,但它只会重复保存一个结果。
private static List<int[]> permutations = new ArrayList<int[]>();
int array[] = new int[]{1,2,3,4};
public static void permuteArray(int[] array) {
permuteArray(array, 0);
}
private static void permuteArray(int[] array, int index) {
if (index == array.length - 1) {
permutations.add(array);
}
for (int i = index; i < array.length; i++) {
int aux = array[index];
array[index] = array[i];
array[i] = aux;
permuteArray(array, index + 1);
aux = array[index];
array[index] = array[i];
array[i] = aux;
}
}
【问题讨论】:
-
您只有一个要反复添加的数组。如果你想要一个新数组,你必须实际创建一个新数组。
标签: java recursion permutation