求个算法,这要如何做
求个算法,这要怎么做
求各位给个算法,这要如何去做(不要for嵌套)
问题是这样:现有五个左右的list集合,每个集合的大小不确定有可能size为0,现想得到把每个集合里的数据进行排列组合后的数据。
如图:

现在得到
ADG
ADH
ADI
AEG
AEH
AEI
......
肯请各位请教下要如何去做?
------解决方案--------------------
递归
求各位给个算法,这要如何去做(不要for嵌套)
问题是这样:现有五个左右的list集合,每个集合的大小不确定有可能size为0,现想得到把每个集合里的数据进行排列组合后的数据。
如图:
现在得到
ADG
ADH
ADI
AEG
AEH
AEI
......
肯请各位请教下要如何去做?
算法
行业数据
排列组合
------解决方案--------------------
递归
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Hello {
private static List<String> result = new ArrayList<String>();
public static void foo(List<List<String>> lists, int outerIndex) {
if (result.size() == lists.size()) {
System.out.println(result);
}
for (int oi = outerIndex; oi < lists.size(); ++oi) {
List<String> temp = lists.get(oi);
for (int ii = 0; ii < temp.size(); ++ii) {
result.add(temp.get(ii));
foo(lists, oi + 1);
result.remove(result.size() - 1);
}
}
}
public static void main(String[] args) {
// [[[1]]] 准备数据.
List<String> l1 = new ArrayList<String>();