开发者社区 问答 正文

求多数组的排列组合算法

有多个数组, 比如:
{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 2572 分享 版权
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
    赞同 展开评论
问答分类:
问答地址: