开发者社区> 问答> 正文

求多数组的排列组合算法

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

展开
收起
蛮大人123 2016-02-28 13:36:14 2448 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    递归

    public List<String> permutation(List<String> inputList){
        List<String> resList = new ArrayList<>();
        permutationInt(inputList, resList, 0, 
                new char[inputList.size()]);
        return resList;
    }
    private void permutationInt(List<String> inputList, List<String> resList,
            int ind, char[] arr) {
        if(ind == inputList.size()){
            resList.add(new String(arr));
            return;
        }
    
        for(char c: inputList.get(ind).toCharArray()){
            arr[ind] = c;
            permutationInt(inputList, resList, ind + 1, arr);
        } 
    }
    2019-07-17 18:49:31
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载