基础算法----手电筒过桥

出题

有四我的要在夜里穿过一条悬索桥回到宿营地。但是他们只有一支手电,电池只够再亮17分钟。过桥必需要有手电,不然太危险。桥最多只能承受两我的 同时经过的重量。这四我的的过桥速度都不同:一个须要1分钟,一个须要2分钟,一个须要5分钟,还有一个须要10分钟。他们如何才能在17分钟以内所有 过桥?

思考几秒钟。算法

其实这道题同以前小岛上的和尚并非一道算法题,只不过这道题里面算法成分貌似多一些,可是个人理解反而仍是一道计算机思惟题。.net

这道题背后有一个条件:code

  • 手电筒须要有人传递;

因此基于时间考虑,咱们但愿传递手电筒的过程最快,因此传递手电筒的工做会交到1分钟和2分钟人的手里。blog

同时为了任务之间等待差最小,咱们考虑让5分钟和10分钟的人在一块儿过桥,这样产生的浪费最小。get

因而获得结果:计算机

  1. 1分钟和2分钟一块儿过桥,这样须要传递手电筒的时间最短。(2分钟)
  2. 1分钟返回将手电筒交给5分钟和10分钟的人一块儿过桥。(1分钟+10分钟)
  3. 手电筒须要回到1分钟这边,这是让2分钟的人送过来。(2分钟)
  4. 1分钟和2分钟一块儿过桥。(2分钟)

这样获得的结果是17分钟,其实1分钟和2分钟人的工做能够互相交互,不影响结果。时间

因此咱们知道这道题不是一道算法题,若是非要靠到算法上,应该是一道有条件的穷举吧。思考

相关文章
相关标签/搜索