美团2016研发笔试题解析:马赛跑、函数调试与过桥策略

需积分: 30 1 下载量 57 浏览量 更新于2024-09-09 收藏 32KB DOCX 举报
"美团点评2016年研发工程师笔试题及答案,涵盖逻辑思维、编程调试和实际问题解决能力的考察。" 这次笔试题目主要涉及三个方面:逻辑推理、程序调试和实际问题解决。让我们逐一解析这些题目及其答案。 1. 第一题是一道逻辑推理题,目的是找出最快的3匹马。由于每次只能赛5匹,所以首先需要进行5组比赛,确定每组的第一名。接着,这5个小组的第一名进行一场比赛,决出最快的马。然后,需要确定第二和第三名,为此,可能成为第二、第三名的马(包括最快组的2、3名,次快组的1、2名,第三快组的第1名)再次比赛。总共需要7场比赛。 2. 第二题是编程调试题,目标是检查函数`f(int n)`是否总是返回0。给出的代码使用do-while循环,从最小整数`INT_MIN`开始,不断调用`f(n)`并检查返回值。如果`f(n)`不返回0,程序将输出错误并停止。此代码确保了在`n`遍历整个整数范围时,`f(n)`始终返回0。 3. 第三题是一个实际问题,涉及到最优化问题。四个人过桥需要考虑时间最少。最佳策略是先让1和2过桥,然后1返回带5和10过桥,2再返回与1一起过桥。这样,总共耗时17分钟。 4. 最后一题是一个概率问题。在2N个人中,有N个人持有5元,N个人持有10元。为了使所有人都不必等待找零,我们需要找到所有满足条件的排列。这个问题可以转化为计算二进制序列中,0的个数不超过1的个数的序列比例。总共有C(2n,n)种排列。不满足条件的排列特点是存在某个位置K,之后0的数量比1多1。通过交换0和1,可以将不满足条件的序列转换为等数量的序列,但这不会改变满足条件的序列总数。因此,满足条件的序列占比即为所求概率。 通过这些题目,可以看出美团点评在招聘研发工程师时对逻辑思维、编程能力和实际问题解决技巧的重视。这些问题不仅测试了应聘者的专业知识,也评估了他们的创新思维和问题解决能力。