我需要置换一个数组并将每个排列保存在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;
}
}
我希望有人可以帮助我。
您可以执行以下操作: