0
我發現這個代碼交換,但我需要消除遞歸?是否有可能使用ArrayList而不是Array?交換ArrayList的元素-java
public class A {
static ArrayList<int[]> permutations(int[] a) {
ArrayList<int[]> ret = new ArrayList<int[]>();
permutation(a, 0, ret);
return ret;
}
public static void permutation(int[] a, int pos, ArrayList<int[]> list) {
if (a.length - pos == 1)
list.add(a.clone());
else
for (int i = pos; i < a.length; i++) {
swap(a, pos, i);
permutation(a, pos + 1, list);
swap(a, pos, i);
}
}
public static void swap(int[] arr, int pos1, int pos2) {
int h = arr[pos1];
arr[pos1] = arr[pos2];
arr[pos2] = h;
}
你能詳細說明你的問題嗎?交換什麼?而在交換中,我沒有看到任何遞歸。 –