今天参加了一场线下面试,面试官出了一道电梯的题目,10 分钟思考时间之后,我说了一下我的思路,不过面试官好像不是很满意的样子。。
而且搜索了一下,好像也没有人遇到同样的问题,于是就发到社区里,感兴趣的大佬们可以共同探讨一下有没有更好的回答方式

我尽量完整地描述一下这道题:

已知:

  1. 有两部电梯(电梯 A、电梯 B),共用同一套控制按钮(上、下)
  2. 电梯 A 可用楼层:B1F ~ 9F, 电梯 B 可用楼层:1F ~ 9F

附加条件:

  1. 距离优先:距离操作楼层更近的电梯会更先收到指令
  2. 满员不停:电梯满员时,操作的楼层不会停靠
  3. 无故障:不考虑电梯发生故障的场景

问题:
现在测试者分别站在 1F、B1F,按动按钮来控制电梯,根据以上条件,分析测试场景。

下面是我的回答:
分三种情况:

  1. 操作者站在 B1F,B1F 只有 “上” 一个按钮,按动 “上”,期待结果就是 A 电梯会开门
  2. 操作者站在 1F,按 “下” 按钮,由于只有 A 电梯能到 B1F,所以期待结果也是 A 电梯会开门
  3. 操作者站在 1F,按 “上” 按钮,期待结果是 A 或者 B 其中一个门会打开

对于 “满员不停” 这种情况,我举了一个极端例子,就是电梯 A 每次经过 1F 的时候都是满员的(包括从高楼层下降到 B1F,和从 B1F 升到高楼层),这样电梯 A 的门可能始终不会被开启,但这是极端情况,现实中不太可能出现

关于 “距离优先”,我事先跟面试官确认过,人站在外面,完全没有办法得知电梯的具体运行情况(除非电梯已经在 1F 并且门已经打开了)

面试官的回应:
面试官表示对于 “距离优先” 这个条件,有办法通过计算来覆盖到。


↙↙↙阅读原文可查看相关链接,并与作者交流