我有一个包含唯一数字的数组,如 [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/