如何保存以下方法生成的所有数组?
static void permute(java.util.List<Character> arr, int k) {
for (int i = k; i < arr.size(); i++) {
java.util.Collections.swap(arr, i, k);
permute(arr, k + 1);
java.util.Collections.swap(arr, k, i);
}
if (k == arr.size() - 1) {
System.out.println(java.util.Arrays.toString(arr.toArray()));
}
}
答案 0 :(得分:1)
您可以将result
列表作为参数传递给递归方法以保存结果。
static void permute(List<Character> arr, int k,List<List<Character>> results) {
for (int i = k; i < arr.size(); i++) {
java.util.Collections.swap(arr, i, k);
permute(arr, k + 1, results);
java.util.Collections.swap(arr, k, i);
}
if (k == arr.size() - 1) {
results.add(new ArrayList<>(arr));
}
}