百度蚂蚁面试题

Posted on 2008-05-12 14:28 blues 阅读(292) 评论(0)  编辑  收藏 所属分类: Interview
(转载题目)有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间

本人解答:

其实文中蚂蚁相撞两蚂蚁调头
可以这样看问题,如果相撞后,杆可以过两只蚂蚁
蚂蚁不调头,即擦肩而过,继续沿原来方向前进(与调头是一样的,只是换了一只蚂蚁而已)
这样问题就简化了,呵呵。
即所有蚂蚁中离杆其中一端最远的那只蚂蚁,即为最长时间。
即27-3=24

同理,最短时间为
所有蚂蚁使用时间:A最短是3, B最短是7, C最短11, D最短是10, E最短是4。
所以总的最短时间为11.

不知道小弟的思路是否正确?~~~~

至于为什么说27-3是最长,我中间跳跃一些而已。
就是观察分析了两端的蚂蚁后说的, A离左边3, E离右边4。
所以最长就是27-3=24。 上一句分析我省略了而已,SORRY。

最短:
我只是将五个蚂蚁的最短时间列出来而已, 最长时间列出来没意义了。
如果用式子总结便是: 最靠近杆中间点的那个蚂蚁的最短时间,即C距离左边。

只有注册用户登录后才能发表评论。


网站导航: