【问题标题】:Storing arrays generated by a recursive method存储递归方法生成的数组
【发布时间】:2016-03-10 00:19:28
【问题描述】:

如何保存以下方法生成的所有数组?

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()));
    }
}

【问题讨论】:

    标签: java arrays recursion


    【解决方案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));
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多