题目
有n个数组,每个数组中的元素个数不同,求这n个数组的所有排序组合。
比如,有3个数组,A(a1,a2,a3),B(b1,b2),C(c1,c2);则笛卡尔积为:a1b1c1,a1b1c2,a1b2c1,….
思路
设置一个数组count[n],对应n个数组,count[i]表示取第i个数组的第count]i]个元素;初始化count均为0,遍历每个数组,对于第i个数组,从该数组中取出第count[i]个元素;每次遍历时添加的元素极为一个排列;
算法实现
private static LinkedList<LinkedList> combineArray(List<Object[]> nArray){
int n=nArray.size();
int[] count=new int[n];
for(int i=0;i<n;i++){