求多数组的排列组合算法...

有多个数组,比如:
{a,b,c,d}
{1,2}
{g}
{q,w,e}
想分别从每个数组中取出一个值,然后组合.({a,1,g,q}{a,2,g,q}......)
怎么样才能把所有的情况都组合起来呢?
慕标5832272
浏览 308回答 2
2回答

慕尼黑5688855

递归publicListpermutation(ListinputList){ListresList=newArrayList();permutationInt(inputList,resList,0,newchar[inputList.size()]);returnresList;}privatevoidpermutationInt(ListinputList,ListresList,intind,char[]arr){if(ind==inputList.size()){resList.add(newString(arr));return;}for(charc:inputList.get(ind).toCharArray()){arr[ind]=c;permutationInt(inputList,resList,ind+1,arr);}}

慕盖茨4494581

我知道你问的是java的,不过我给个python的,python比较方便嘿嘿,java的原理是一样的L1=['a','b','c','d']L2=['1','2']L3=['g']L4=['q','w','e']list=[[i,j,k,p]foriinL1forjinL2forkinL3forpinL4]补充回答:不确定几个list,不确定list多长的时候#把取来的数组合成一个大list,然后再一行代码就没有然后了s=[['a','b','c','d'],['1','2'],['g'],['q','w','e']]list=list(itertools.product(*s))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript