已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液相模板法:无机纳米材料合成与形貌调控的深度探索
- 液压起竖系统故障诊断技术:现状、方法与创新发展
- 润物细无声:大学生思想政治教育中隐性教育的探索与实践
- 涉他偏好视角下保险中介机制的创新与优化研究
- 人工智能+创新应用与发展手册
- 2024年新高考Ⅰ语文
- 妊娠期表观遗传调控网络的构建与分析
- 妊娠期胎盘功能不全的血流动力学研究进展综述
- 妊娠期结核病合并妊娠期胎儿窘迫的胎心监护早期减速
- 2026呼伦贝尔市中考语文考前3天预测卷含答案
- 2026年事业单位考试公文改错专项训练测试
- 中考英语模拟试卷命题指南与标准
- 2025-2026学年天津市河西区七年级下学期期中数学试卷(含答案)
- 2026年钳工技能鉴定考核综合提升练习试题(考点梳理)附答案详解
- GA 53-2025爆破作业人员资格条件和管理要求
- 2026石嘴山经济技术开发区实业开发有限公司招聘17人考试备考试题及答案解析
- DB50T 1929-2025疾控机构卫生应急物资储备管理规范
- 咸阳亨通电力(集团)有限公司招聘笔试题库2026
- 残疾人保健知识培训课件
- 桂妇儿系统信息安全课件
- 天然气维修安全常识培训课件
评论
0/150
提交评论