笛卡尔积算法「建议收藏」

笛卡尔积算法「建议收藏」/***生成笛卡尔积*@paramdimvalue*@paramresult*@paramlayer*@paramcurList*/privatestaticvoiddescartes(List

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

/** * 生成笛卡尔积 * @param dimvalue * @param result * @param layer * @param curList */
    private static void descartes(List<List<String>> dimvalue, List<List<String>> result, int layer, List<String> curList) { 
   
        if (layer < dimvalue.size() - 1) { 
   
            if (dimvalue.get(layer).size() == 0) { 
   
                descartes(dimvalue, result, layer + 1, curList);
            } else { 
   
                for (int i = 0; i < dimvalue.get(layer).size(); i++) { 
   
                    List<String> list = new ArrayList<>(curList);
                    list.add(dimvalue.get(layer).get(i));
                    descartes(dimvalue, result, layer + 1, list);
                }
            }
        } else if (layer == dimvalue.size() - 1) { 
   
            if (dimvalue.get(layer).size() == 0) { 
   
                result.add(curList);
            } else { 
   
                for (int i = 0; i < dimvalue.get(layer).size(); i++) { 
   
                    List<String> list = new ArrayList<>(curList);
                    list.add(dimvalue.get(layer).get(i));
                    result.add(list);
                }
            }
        }
    }

    /** * 调用生成列表 * @param list * @return */
    public static List<String> result(List<List<String>> list){ 
   
        List<List<String>> result = new ArrayList<>();
        descartes(list, result, 0, new ArrayList<>());
        //重组数据
        List<String> data=new ArrayList<>();
        result.forEach(oList->{ 
   
            StringBuilder sb=new StringBuilder();
            for(int i=0;i<oList.size();i++){ 
   
                sb.append(oList.get(i));
                if(i!=oList.size()-1){ 
   
                    sb.append(",");
                }
            }
            data.add(sb.toString());
        });
        return data;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157421.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 日志审计系统如何和服务器互联,服务器如何查看审计日志[通俗易懂]

    日志审计系统如何和服务器互联,服务器如何查看审计日志[通俗易懂]服务器如何查看审计日志内容精选换一换云审计CTS与LTS进行系统对接后,系统自动在云日志服务控制台创建的日志组和日志流,如果需要将CTS的日志转储至OBS中,您需要进行以下操作:在云审计服务管理控制台,单击左侧导航栏中的“追踪器”。单击追踪器“system”右侧的“配置”。在“配置追踪器”页面,开启“事件分析”。在云日志服务管理控制台,选择左侧导航栏中的“日志转储”,单击“如果变更规格失败,请到…

    2022年6月4日
    64
  • 2017年最新(4月20日)手机号码归属地数据库分享

    2017年最新(4月20日)手机号码归属地数据库分享2017年最新(4月20日)手机号码归属地数据库下载手机号段数据库号码归属地数据库移动号段联通号段电信号段147号段170号段(虚拟运营商)权威全面准确规范字段包括省份城市运营商邮编区号等信息,对于数据分析、号码归属地查询等非常有帮助更新历史:2017年4月最新版手机号段归属地,也叫手机归属地数据库共360569条记录…

    2022年7月22日
    14
  • 云服务器高io是什么_云主机购买

    云服务器高io是什么_云主机购买1:数据读取速度ucloud云主机最低224.8MB/S,最高508.8MB/S,平均410.7MB/S阿里云主机最低17.4MB/S,最高189.6MB/S,平均170.6MB/S万根云主机最低

    2022年8月3日
    7
  • Lightroom人像磨皮滤镜插件portraiture Mac版

    Lightroom人像磨皮滤镜插件portraiture Mac版本次小编为您带来了Portraiture3forLightroomforMac,这是一款适用于Lightroom的lr人像磨皮滤镜插件。lr磨皮插件portraitureMac版功能非常强大,能够快速对图像中的皮肤,眉毛,头发,眼睛瞪部位进行磨皮修饰,去除瑕疵,同时为您保持皮肤的色泽!链接:https://pan.baidu.com/s/1U0QVMQ6Qa8F5NITbBVr3…

    2022年7月22日
    18
  • bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式*「建议收藏」

    bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式*

    2022年2月22日
    50
  • 生活小感慨

    生活琐事开一篇文来记录生活2021/12/9阻挡我使我停滞不前的,是浮躁的心2021/8/16我也并不希望我的生活是一成不变的.2021/8/13挑战软肋2021/8/5感谢每一个编

    2021年12月13日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号