gpt4 book ai didi

java - Java中n个子数组的取值组合

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:57 25 4
gpt4 key购买 nike

我想创建一个 Java 方法,它接受一个 inputArray = Object[n][],其中 n 可以是任何整数,并输出所有值之间可能的 n 大小组合的列表n 个子数组。下面是一个例子:

输入数组:(其中 Object=String 且 n=3)

String[] subarrayA = {"A0","A1","A2"};
String[] subarrayB = {"B0","B1"};
String[] subarrayC = {"C0","C1","C2","C3"};
String[3][] inputArray = {subarrayA, subarrayB, subarrayC};

期望的输出:

{A0,B0,C0},{A0,B0,C1},{A0,B0,C2},{A0,B0,C3},
{A0,B1,C0},{A0,B1,C1},{A0,B1,C2},{A0,B1,C3},
{A1,B0,C0},{A1,B0,C1},{A0,B0,C2},{A1,B0,C3},
{A1,B1,C0},{A1,B1,C1},{A1,B1,C2},{A1,B1,C3},
{A2,B0,C0},{A2,B0,C1},{A2,B0,C2},{A2,B0,C3},
{A2,B1,C0},{A2,B1,C1},{A2,B1,C2},{A2,B1,C3}

显然,我的方法中不能有固定的嵌套循环,因为我事先不知道 n。所以,我猜想解决它的唯一方法是通过递归方法?有什么建议吗?

P.S:我知道简单的 combination-related posts在网站上。

最佳答案

这应该可以解决您的问题。

public static void permute(String array[][], int index, ArrayList<String> output){

if(index == array.length){
System.out.println(output.toString());
}
else{
for(int i=0 ; i<array[index].length ; i++){
output.add(array[index][i]);
permute(array,index+1,output);
output.remove(output.size() - 1);
}
}
}

关于java - Java中n个子数组的取值组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com