java - 如何从包含另一个数组的所有元素的数组中获取所有可能的组合

标签 java arrays algorithm

我有一个包含唯一数字的数组,如 [2,3,4]。 我有另一个数组,其中包含一些数字,包括像 a2 = [1,2,2,3,4,4,3,5,6,7]

这样的重复项

我想要 array-2 的所有可能组合,它具有 array-1 的所有值 像 [a2[1],a2[3],a2[4]],[a2[2],a2[3],a2[4]] 等。

最佳答案

你需要进行递归。我编写了一些可以引导您走向正确方向的代码。它可能有效,但我没有测试它:

    public static void main(String[] args) {
        int[] a1 = new int[]{2,3,4};
        int[] a2 = new int[]{1,2,2,3,4,4,3,5,6,7};
        recursion(a1,a2, new String());
    }

    public static void recursion(int[] a1, int[] a2, String soFar){
        int toSearch = a1[0];
        for(int i=0;i<a2.length;i++){
            if(a2[i] == toSearch){
                if(a1.length>1) {
                    int[] a1b = new int[a1.length - 1];
                    for (int j = 1; j < a1.length; j++) {
                        a1b[j - 1] = a1[j];
                    }
                    recursion(a1b, a2, soFar+ "a2["+i+"]");
                }
                else {
                    System.out.println(soFar+ "a2["+i+"]");
                }
            }
        }
    }

输出是:

    a2[1]a2[3]a2[4]
    a2[1]a2[3]a2[5]
    a2[1]a2[6]a2[4]
    a2[1]a2[6]a2[5]
    a2[2]a2[3]a2[4]
    a2[2]a2[3]a2[5]
    a2[2]a2[6]a2[4]
    a2[2]a2[6]a2[5]

关于java - 如何从包含另一个数组的所有元素的数组中获取所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696004/

相关文章:

Python:计算贷款支付的更智能方法

python,dijkstra的最短路径,类型错误 - 生成器不支持项目分配

java - 解析和操作字符串的有效方法

java - Android JSON 异常 - JSONArray 无法转换为 JSONObject

java - 如何从非生成的别名表中获取字段?

php - 多维数组输出

algorithm - 计算 DAG 中每个顶点的单源最短路径算法背后的直觉

c - 使我的递归代码不那么复杂

java - Controller 方法提取多个值

java - Spring Data - 多列搜索