为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2019-04-19 16:10:52
有多个数组,比如:{a,b,c,d}{1,2}{g}{q,w,e}想分别从每个数组中取出一个值,然后组合.({a,1,g,q}{a,2,g,q}......)怎么样才能把所有的情况都组合起来呢?
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

递归
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);
}
}
                            
查看完整回答
反对 回复 2019-04-19
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

我知道你问的是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))
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 307 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信