已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
百度技术研发笔试题目 /*百度面试题 * 有一根 27 厘米的细木杆,在第 3 厘米、7 厘米、11 厘米、17 厘米、23 厘米这五个 位置上各有一只蚂蚁。 * 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它 们只会朝前走或调头, * 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁 们每秒钟可以走一厘米的距离。 * 编写程序,求所有蚂蚁都离开木杆 的最小时间和最大时间。 * * * 分析:题目中的蚂蚁只可能相遇在整数点,不可以相遇在其它点,比如 3.5cm 处之类的,也就 是可以让每只蚂蚁走 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 + this.direction * step; ; /* * 检查蚂蚁是否已经走出木杆,如果走出返回 true * */ public boolean isOut() return position = 27; /* * 检查此蚂蚁是否已经遇到另外一只蚂蚁 * param ant * return 如果遇到返回 true */ public boolean isEncounter(Ant ant) return ant.position = this.position; /* * 改变蚂蚁的前进方向 */ public void changeDistation() direction = -1 * direction; /* * 构造函数,设置蚂蚁的初始前进方向,和初始位置 * param position * param direction */ public Ant(int position, int direction) this.position = position; if (direction != 1) this.direction = -1;/方向设置初始位置,比如为 0 时,也将其设置为 1.这样可以方便后面的 处理 else this.direction = 1; / package baidu; public class Controller public static void main(String args) int time = 0; for (int i = 0; i 若存在,则将此小集合与大集合合并,并根据大小插入对应的位置 。转 3 。 2若不存在,则在该集合中取下一个元素。如果无下一个元素,即所有元素 都不存在于其他集合。则表明此集合独立,从待处理集合列表中删除。并加入结果集 合列表。转 3。 3。如果待处理集合列表不为空,转 2。 如果待处理集合列表为空,成功退出,则结果集合列表就是最终的输出。 算法复杂度分析: 假设集合的个数为 n,最大的集合元素为 m 排序的时间复杂度可以达到 n*log(n) 然后对于元素在其他集合中查找,最坏情况下为(n-1)*m 查找一个集合是否与其他集合有交集的最坏情况是 m*m*(n-1) 合并的时间复杂度不会超过查找集合有交集的最坏情况。 所以最终最坏时间复杂度为 O(m*m*n*n) 需要说明的是:此算法的平均时间复杂度会很低,因为无论是查找还是合并,都是处 于最坏情况的概率很小,而且排序后优先用最小集合作为判断是否独立的对象,优先 与最大的集合进行比较,这些都最大的回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天天练助力语文测评优异成绩
- 五年级下册第三单元综合性学习 《遨游汉字王国》 教案 部编版
- 三年级上册美术教学设计-第4课 我设计的服饰-苏少版
- 《讲文明知礼仪》主题班会++教案
- 幼儿美术活动课教案及反思《替换想象画》
- 大班数学教案:排队游戏拓展课
- 关于果园机器人的简要教案
- 初中校本课程《“环境保护”网络小组合作学习》教案
- 本科毕业论文致谢词创意
- 中班科学种子的旅行教案
- 法理学进阶复习笔记
- 计算机网络技术专业人才需求调研报告
- 绿色施工方案(四节一环保)
- 小学数学单元整体教学论文
- 国家开放大学《土木工程力学(本)》形考作业1-5参考答案
- 2020年国家开放大学电大考试《社会统计学》考题题库及答案
- 年产2万吨酒精发酵车间设计
- 05J909工程作法图集
- 制造业智能优化解决方案项目人员保障方案
- 2023年我国贴身服饰行业政策 加快推进纺织服装自主品牌建设报告模板
- 【基于学科核心素养的高中音乐高效课堂创设的探究3500字(论文)】
评论
0/150
提交评论