阿里笔试题目「建议收藏」

阿里笔试题目「建议收藏」题目描述一个淘宝的订单中包含n(10>=n>=1)种商品A1,A2,…,An,每种商品数量分别为a1,a2,…,an个,记做{a1,a2,…,an}(ak>0)。订单在仓库生产过程中,仓库为了提升作业效率,会提前对热门组合商品进行预包装。假设这n个商品有m(9>=m>=1)个商品组合,每个组合bomk包含A1,A2,…,An的数量分别为{b1,b2,…,bn}(bk&…

大家好,又见面了,我是你们的朋友全栈君。题目描述

一个淘宝的订单中包含n(10>=n>=1)种商品A1,A2,…,An,每种商品数量分别为a1,a2,…,an个,记做{a1,a2,…,an}(ak>0)。订单在仓库生产过程中,仓库为了提升作业效率,会提前对热门组合商品进行预包装。假设这n个商品有m(9>=m>=1)个商品组合,每个组合bomk包含A1,A2,…,An的数量分别为{b1,b2,…,bn}(bk>=0,至少存在一个bk>0)

举例如下:

订单包含A,B,C商品,数量为{2,3,1},商品组合bom1{2,1,1},bom2{1,1,0},bom3{0,1,1}

对以上订单匹配给定商品组合,得到的可能匹配结果为:res1.匹配到组合1一套,剩余B商品;res2.匹配到组合2两套,组合3一套,不剩商品;

现要求订单的最优匹配,最优匹配的原则为:1.匹配组合后,剩余商品种类数越少越好;2.在剩余商品种类数相同的情况下,匹配到的组合种类数越少越好;

例如上面例子,我们认为res2优于res1。

现需要编写程序,输入格式为:

n,m

a1,a2,…,an

bom1,b11,b12,…,b1n

bom2,b21,b22,…,b2n

….

bomm,bm1,bm2,…,bmn

输入数据的格式说明(数据间使用英文逗号分隔):

第一行数据:n个商品,m个预包方案

第二行数据:商品1个数,商品2个数,。。。,商品n个数

第三行数据:bom1,商品1个数,商品2个数,。。。,商品n个数

第n-1行数据:。。。。

第n行数据:bomn,商品1个数,商品2个数,。。。,商品n个数

针对输入数据找出最优匹配,输出最优匹配的组合及套数,比如针对上面的例子输出:

match result:

bom2*2,bom3*1

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

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

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


相关推荐

  • Vue router2.0

    Vue router2.0对于单页面来说路由是我们常用切换页面的一种方式,使用Vue安装npminstallvue-router–save路由的引入importrouterfrom’./router’/*eslint-disableno-new*/newVue({el:’#app’,store,router,components:{App},template:'<App/>’})路由的配置通过和也可以实现我们像a标签一样

    2022年7月11日
    18
  • Android4.2.2启动动画前播放视频

    Android4.2.2启动动画前播放视频

    2021年11月13日
    50
  • Java stream 求和_JAVA求和

    Java stream 求和_JAVA求和BigDecimal:BigDecimalbb=list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);int、double、long:doublemax=list.stream().mapToDouble(User::getHeight).sum();…

    2022年10月5日
    3
  • HADOOP生态圈简介

    HADOOP生态圈简介1.hadoop生态概况Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。Hadoop的核心是YARN,HDFS和Mapreduce下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与s…

    2022年5月22日
    40
  • oracle修改用户的密码_修改linux用户密码

    oracle修改用户的密码_修改linux用户密码oracle中修改用户密码首先是win键+R输入cmd输入sqlplus/assysdba,回车,此时进入到SQL>输入alterusersystemidentifiedbysystem;这行代码的意思就是修改system用户的密码为system(注意:代码末尾要加上;分号)…

    2022年7月28日
    11
  • 5个常用的MySQL数据库管理工具_MySQL 事务

    5个常用的MySQL数据库管理工具_MySQL 事务mysql几个管理工具推荐发布时间:2020-03-2615:59经常跟mysql打交道,免不了用到mysql管理的一些工具,根据我平时使用的一些经验,谈一谈我使用一些工具的心得,推荐给大家。废话就不多说咯,我推荐大家三款工具吧,phpmyadmin,mysqlworkbenth以及mysqladministrator。分别阐述如下。1,phpmyadmin。开发php程序的人应该都知道,这个w…

    2022年8月22日
    11

发表回复

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

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