刚写优快云,上篇代码太丑,又不会HTML,现在现学现卖,重新编辑一下格式。一个嵌套的for循环代码格式总是不对,最后我一点一点粘,才把代码格式全弄对。
题目:
有个一个饭店,有n张桌子,每张桌子可以招待不同数量的客人,且不能拼桌,现在来了m批客人,每批客人有两个属性,一个是客人的总数,一个是他们消费(预计)的总额请设计一个算法,计算出,店家能够获得的最大利润。
我的思路很简单:将每批客人的消费金额,每批客人人数,桌子容量分别建立数组。按照金额从大到小将金额和人数同时排序,桌子数组从小到大排序。对金额数组和人数数组同时遍历,对每一个金额再根据对应的客人数遍历桌子数组,是否有满足的桌子,如果有满足的将该金额存入新建的收入数组,同时将该桌子容量设为0。最后输出收入数组,求出总金额。代码如下:

这是一道来自滴滴2017年Java开发笔试的题目,要求设计一个算法,将m批客人按消费总额从高到低排序,并尝试分配到n张不同容量的桌子上,以最大化利润。解决方案是首先对消费金额和桌子容量进行排序,然后遍历匹配,确保不拼桌,记录最大利润。
最低0.47元/天 解锁文章
370

被折叠的 条评论
为什么被折叠?



