求职 面试算法题求解答

flystar · 2018年11月28日 · 最后由 我叫不迷糊 回复于 2018年11月28日 · 3989 次阅读

今天去面试,面试官出了一个算法题,题目如下:
假设有一个 4 层的货架,8 种饮料(饮料重量一致),现每层放 2 中饮料,要求每层货架的重量不能大于 20kg,2 种饮料的关系《xA!=yB》,就是说如果 a 的重量为 200,b 的重量为 400,2a=b,a 和 b 就不能放在同一层,最终输出所有的排列可能
麻烦看懂了题目意思并且有实现思路的大神帮我解答下。。。

共收到 12 条回复 时间 点赞

x=B y=A 岂不是符合条件的组合都不存在了?

我想我当时会想和面试官说:可以让我回家了么😰

感觉信息没给全

  1. 所有饮料总重量?
  2. 是否要把全部饮料都放上去?
  3. 每种饮料的单个重量? 不然这题无解啊

饮料重量应该不一致的吧,另外 xA!=yB,这里的 x,y 应该是确定值。基于这个条件的我的一个思路:
首先实现一个全排列顺序的打印,然后在合适的位置过滤掉不满足条件的记录(xA==yB or A+B >20kg)

没学过背包算法,不知道是否可以用背包算法

A=B 且 xA!=yB? xy 总要有规则吧要么怎么解呀?

xA!=yB 最大公约数=1,我理解。剩下递归。
下次碰到这种,你让面试官手写代码,我不信他写的出来。

magicyang 回复

没太明白😅 ,题目太虚了

roger 回复

同类的饮料重量一致,不同类的饮料可能一致可能不一致;x 和 y 也不是确定值

arrow 回复

我当时也想的,题目输入太不明确了,完全没有思路

我想了一会儿,还是一脸懵逼,就说 “不好意思,我不会 “,面试官就目送我走远了😓

flystar 回复

这种题目比较模糊的,最好不要直接说 不会,要追问面试官,细节的东西,然后自己再思考一下思路,即使没做出来,也可以留下一个比较好的印象

是不是少一个条件是单个饮料 1kg?,1.先饮料 8 选 2 出来所有饮料组合的情况。2.再根据单个饮料重量和总重量 20kg,算出一种组合有多少种饮料数目组合的情况,最后再按照 4 层排列。我想的,不知道对不对。

flystar 回复

😂 换我肯定和你一样。这种题笔试时候尚可挣扎挣扎,面试时候我这种脑袋发木的人肯定就歇菜了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册