一道面试题,求各位给下思路

Sally_simple Sally_simple 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
接到一道面试题,由于本人技术有限,想的我头发都快白了,还没有动手写。
在这请求大家的帮助,说说大致的思路。万分感谢。

要求大致是这样
实现一个商店收银模拟系统, 计算所有顾客结账时间需要多久。用OOD实现。先进先出原则
1 有1-n个收银台,分为普通收银台,和培训收银台。 区别:假设顾客有一个商品,在普通收银台每个商品需要1min, 而在培训收银台需要2min。n个收银台中当且仅有一个培训收银台。期中培训收银台的编号是所有收银台中编号最大的。比如两个收银台,则培训收银台是 #2.

2 顾客分为两种 A 和 B。
A顾客排队总是选择 人数最少的队。 B顾客排队总是选择 队末尾的那个人商品个数越少的队,不关心队有多少人,除了最后一个人,其他人的商品数。

3 模拟系统的起始时间是 t = 0

4. 如果两个顾客的在同一时间到达 收银台, 商品数少的顾客先结账, 如果商品数一样,则A类顾客先于B类。

Example
A:顾客类型, 第一个int是到达收银台的时间, 第二个是商品的个数。

A 1 5
B 2 1
A 3 5
B 5 3
A 8 2

• t=0 : 两个收银台,培训收银台是 2号
• t=1 : Customer #1 (type A) 到达, 5个商品,去一号收银台
• t=2 : Customer #2 (type B) 到达, 1 个商品, 去2号收银台。
• t=3 : Customer #3 (type A) 到达, 5个商品, 因为是A类顾客,去1号收银台。
• t=4 : Customer #2 离开2号收银台。
• t=5 : Customer #4 (type B) 到达, 3个商品。2号是空的, 所以去2号收银台。
• t=6 : Customer #1 离开,1号服务Custom #3.
• t=8 : Customer #5 (type A) 到达, 2个商品。 因为两个收银台都有一个人,就去了一号收银台,在Custom #3 后面
• t=11 : Customer #3 离开。 1号收银台服务5号顾客。
• t=11 : Customer #4 离开2号收银台。
• t=13 : Customer #5 离开1号收银台

output: 完成时间13mins。

我的思路是 用queue去实现。具体的希望大家给些思路

谢谢大家能把题读完。
请大家说说思路吧,还有大致有几个类和方法,改如何实现。
120分奉上
...全文

相关推荐

每日一道算法面试题(1):leetcode1两数之和

算法在编程领域的重要性不言而喻,而且也是好多大厂面试经常要考核的重点。 两数之和 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 算法思路: 暴力法:使用两层循环,外层循环计算当前元素与 target 的差值,内层循环寻找该差值,若找到该差值,则返回两个元素的下标;时

weixin_38614391

一道月工资三万的面试题

这是一个公司出的题,听说月工资是三万。看看大家离这个距离还有多远!

chenshifengcs

这是一道广为流传的微软面试题

输入一个链表的头结点,反转该链表,并返回反转后链表的头结点 这是一道广为流传的微软面试题

mhzdajiang

一道关于JavaScript变量作用域的面试题

主要为大家介绍了一道关于JavaScript变量作用域的面试题,如何解决这道面试题,感兴趣的小伙伴们可以参考一下

weixin_38695061

一道微软数据库面试题

一道微软的数据库面试题:一个表中有三个字段,1,2,3,现将1中的每一个值对应的3中的排列在前三个的对应的2中的值取出来

zzuIvy
评论 155
收藏 已收藏
分享
返回顶部
Sally_simple
Java SE 62,620 成员 307,251 内容