蚂蚁爬杆问题

来源:互联网 发布:大数据可视化工程师 编辑:程序博客网 时间:2024/06/10 23:17

一根很细很细的杆子,两端开放,长27公分,上面有五只蚂蚁,分别在3公分、7公分、11公分、17公分、23公分的地方,蚂蚁的爬行速度都一样,1公分/秒,如果两只蚂蚁相遇,那么它们都回掉头反向爬行,问五只蚂蚁全部从杆子上爬下来的最短时间,最长时间各是多少?

传说这道题目是百度的面试题目,昨天在社区里看到,今天不知道哪里去了,就记下来了,好像没什么出入。

题目很简单的,不过开始的时候还是煞有介事的写了个程序模拟了一下,最短11秒钟,最长24秒钟,呵呵,程序就不记了,简单的很。程序写完了之后仔细想了一下,原来就是求哪个蚂蚁的路程最远,算最短时间的时候每只蚂蚁都朝着离自己最近的一端爬,算最长时间的时候每只蚂蚁都朝着离自己最远的一端爬,那么距离最长的那个用的时间就是答案。这里不可避免的问题就是相遇,其实各个蚂蚁的速度都相同,相遇就掉头,那么就跟没有相遇一样,大家互相穿过,继续各走各的路,互不影响。看清楚了这个本质,那么这个问题就没什么了,所谓的相遇不能绕过只能掉头之类的说法不过是障眼法,不用去理的。

所以,问题的最后就是从一组数字中找出其中的最大值。