1 / 9
文档名称:

百度面试题及答案.doc

格式:doc   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

百度面试题及答案.doc

上传人:ranfand 2016/7/1 文件大小:0 KB

下载得到文件列表

百度面试题及答案.doc

相关文档

文档介绍

文档介绍:百度技术研发笔试题目/* 百度面试题* 有一根 27 厘米的细木杆,在第 3 厘米、 7 厘米、 11 厘米、 17 厘米、 23 厘米这五个位置上各有一只蚂蚁。* 木杆很细, 不能同时通过一只蚂蚁。开始时, 蚂蚁的头朝左还是朝右是任意的, 它们只会朝前走或调头, * 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。* 编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。*** 分析: 题目中的蚂蚁只可能相遇在整数点, 不可以相遇在其它点, 比如 处之类的, 也就是可以让每只蚂蚁走 1秒, 然后* 查看是否有相遇的即可.** 这样我的程序实现思路就是, 初始化 5 只蚂蚁, 让每只蚂蚁走 1秒, 然后看是否有相遇的,如果有则做相应处理. 当每只蚂蚁都* 走出木杆时, 我就记录当前时间. 这样就可以得到当前状态情况下, 需要多久可以走出木杆, 然后遍历所有状态则可以得到所胡* 可能. */ package baidu; public class Ant { /** step 表示蚂蚁每一个单位时间所走的长度*/ private final static int step = 1; /** position 表示蚂蚁所处的初始位置*/ private int position; /** direction 表示蚂蚁的前进方向, 如果为 1 表示向 27 厘米的方向走, 如果为- 1, 则表示往0 的方向走。*/ private int direction = 1; /** 此函数运行一次,表示蚂蚁前进一个单位时间,如果已经走下木杆则会抛出异常*/ public void walk() { if (isOut()) { throw new RuntimeException("the ant is out"); } position = position + * step; }; /** * 检查蚂蚁是否已经走出木杆,如果走出返回 true * */ public boolean isOut() { return position <= 0 || position >= 27; } /** * 检查此蚂蚁是否已经遇到另外一只蚂蚁* ***@param ant * ***@return 如果遇到返回 true */ public boolean isEncounter(Ant ant) { return == ; } /** * 改变蚂蚁的前进方向*/ public void changeDistation() { direction = -1* direction; } /** * 构造函数, 设置蚂蚁的初始前进方向, 和初始位置* ***@param position * ***@param direction */ public Ant(int position, int direction) { = position; if (direction != 1){ = -1;// 方向设置初始位置, 比如为 0时, 也将其设置为 1. 这样可以方便后面的处理} else { th