数据结构和算法数组系列---求数组的笛卡尔积

这篇博客探讨了如何计算n个不同长度数组的笛卡尔积。通过设置一个计数数组count,记录每个数组当前选取的元素位置,初始化为0。在遍历过程中,依次从每个数组中取出count[i]位置的元素,形成一个排列。每轮遍历添加的元素组合成一个笛卡尔积项。算法实现未详细说明。
摘要由CSDN通过智能技术生成

题目
有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++){
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值