经典面试题【蚂蚁过杆】
面试题库【蚂蚁过杆】【小球过杆】一、常见题目
有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。
求全部下杆最短时间?
答案: 11
求全部下杆最长时间?
答案: 24
二、详细思路
1.已知条件
从题目中我们得到已知的条件是:
- 27厘米长。
- 第3厘米、7厘米、11厘米、17厘米、23厘米。
- 只能通过一只蚂蚁。
- 碰头时,两只蚂蚁会朝反方向走
转换思维
蚂蚁碰头后掉头,可以当作蚂蚁穿过对方,即蚂蚁碰头不损耗时间。
也就是说若 1 2 相遇,则将转头后的 2 视作 1 ,转头后的 1 视作 2.
由于求的是所有蚂蚁的最短最长,不影响蚂蚁之间的编号交换。
时间也就是算出每一只蚂蚁从初始位置直接到离开木杆的场景。
2.求最短
以木杆中心为基准,左边的蚂蚁往左走,右边的蚂蚁往右走,此时即为最短时间。
最短:
根据条件
- 27厘米长。
- 第3厘米、7厘米、11厘米、17厘米、23厘米。
那么中心 13.5 左边的 3,7,11朝左走,最晚为 11 为 11 秒
17,23朝右走,最晚为 17 为 10秒
此时 11 的蚂蚁最晚走下,为 11 秒
3.求最长
以木杆中心为基准,左边的蚂蚁往右走,右边的蚂蚁往左走,此时即为最长时间。
最短:
根据条件
- 27厘米长。
- 第3厘米、7厘米、11厘米、17厘米、23厘米。
那么中心 13.5 左边的 3,7,11朝右走,最晚为 3 为 24 秒
17,23朝左走,最晚为 23 为 23 秒
此时 3 的蚂蚁最晚走下,为 24 秒
三、相似的题型
有一根25厘米的细木杆,在第1厘米、6厘米、9厘米、11厘米、16厘米、21厘米这六个位置上各有一颗小球。开始时,小球的朝向朝左还是朝右是任意的。木杆只能同时通过一颗小球。当任意小球相互碰撞时不会损耗动能,会按照原速度向反向向滚去。假设小球每秒钟可以滚一厘米。
总结
蚂蚁过杆是一道经典算法面试题,但是你将小球视作穿越,则会让你恍然大悟,算法只是一个思路。
希望这个博客能对你有所益处。我是轻王,我为自己代言。