时间:2014年9月25日上午星期四     一面大约1h40min二面:40min

地点:中南大学科教北楼-301

职位:美团网算法工程师

结果:你先回去吧!

声明:不喜勿喷,仅供交流!谨献给面试被拒的我们!如知道相关问题的答案,麻烦评论一下,感谢!

需要改进:1.面试过程中遇到实在不会的题目,可以让面试官提示你一下思路,切记不要和面试官发生争执(多谢二楼xindoo提醒)。

Author:湖南农业大学 2015届一本科应届毕业生

只怪自己学艺不精,前路漫漫,其修远兮!

2014年9月25日星期四,上午10点去参加面试;面试地点是一个大教室,你坐在工程师右边就行了;首先让你做一个简单的自我介绍,他顺便看一下简历,然后就步入主题了。

开门见山:(以下简称A工程师和B 我)

A 你面试的是android?恩,下面问几个简单问题?

B 恩。

A android 里面的Intent 有什么作用?

B 用于Activity之间的跳转,还有数据传递。

A 恩。那么还有什么作用?

B (还是坦白吧!不要不懂装懂)其实android研究的不是很深,其实我用的最多的是算法?

A 志愿里面有一个算法工程师?为什么没选?

B 我以为要求很高,所以没敢填,所以写在了第二志愿!!!囧

A 好吧,那我就问一下的算法题,过了就把你转到算法工程师那里去二面!

B 好

A那你主要研究的算法有哪些?

B 我平时研究的是dp和博弈。

A 博弈?

B 恩,主要是:背包问题(01,完全,多重,二维费用等),威佐夫博奕,nim游戏,SG定理以及取走分割游戏。

A 我们来看一个问题:n位的01串组成的集合S1(共个),找出一个母串:所有长度为n的子串所组成集合S,S包含S1.

有点抽象,看个栗子:

比如 n=2   所有的01串有:00  01  10  11

0110 的所有2位的子串有:01  11  10  00符合条件,不能找到更短的了,因为至少得有2个0和1.你分析一下如何找一个最短的母串!(注:这题我放OJ上了)

B 然后想了一下,应该这个串长度最少应该>=,大约想了5min,感觉没什么思路!

A 你想一下,编程怎么解决?怎么找出这个串?

B 构造?

A 不是,你把n位的所有01串全部列出来,再去选!

B 暴力!

A 恩

B 我说:这样的话复杂度是()阶乘。

A 这个串肯定包含连续n个1和连续n个0的情况,可以去掉很多情况,复杂度可以降很多

B (无语,(!) 你这么点优化!!~~~~)

/*****多谢楼下zgw071415 博友,弄懂了这个问题;故又写一文:

De Bruijn序列的生成及其应用

**********************//

A 下面,我们来讨论简单点的问题:

32位操作系统可识别的内存多大?

B  理论值是4G。

A 为什么是4G?

B 因为32位bit可编码的地址空间是2^32 ,所以是4G。

A 那么你简单说一下操作系统是如何分配内存的?

B 从开机开始?

A 恩

B 首先,计算机加电,cpu直接将cs+ip置为BIOS第一行代码的地址,读取BIOS代码…..直到启动桌面。

A 恩,那么下面说一下32位int如何每一段如何划分的?内存分页,最小的段是多少位?

B 好像是15位?

A 偏移位占几位?

B  2位吧!

A 好吧,那么 ….

B (坦白吧!直接打断他)这个我没怎么研究过!

A 下面我们还是来做几个题:

如何判断一个单链表有环?

B 想了一下,Hash判重,每次查询是O(1)效率是O(n),如果访问过重复访问的点说明有环,如果为NULL,说明无环?

A 不错,那么辅助空间是多少?

B  O(n)

A  可不可以不用辅助空间呢?或者只用O(1)的辅助空间

B 让我想想?

About 5min,.....

B 好像没什么想法,因为你都忘记了你自己走过的路!!好像不好搞耶!

/***后来google之(请看官自备梯子),发现google才是学术帝,龟兔算法!!(亦称快慢指针)stackoverflow上有这样的问题!!还可以求环,效率O(n),突然发现优化无止境。

***/

A 恩,那么我们来看下一个题!

给你一个严格递增的序列,从中间某个未知的地方切成两段,将前一段放到后面,求最大值?注意划开的位置你不知道!

B  O(n)的遍历可以,我觉得你是要更高效率的算法!

A 恩

B 在纸上简单画了画,大约两分钟thinking,发现可以二分搞!立马给面试官讲了思路!

A 恩,写代码实现一下。

B 下手就写,写完之后,发现L<R有点小问题,没去管!

A 面试官看了下,你的边界是不是有问题?

B (还真的看出来了!)想了1min,改成L+1<R返回的时候max(a[L],a[R])就没事了.

A 恩,不错。

A 判断一个二叉树是否关于根节点左右对称!

B 想了想,遍历树的方式,发现“左根右”==“右跟左”即可判断是否“手性对称”(这是高中在书上看到的一个词)。

A 如果一个做孩子为空,一个右孩子为NULL,那就不对了。

B 我说:加一个-1到遍历序列。

A (面试官,又在纸上画了画)~~~你这个方法可以,但是你得保存遍历序列,可不可以不要辅助空间?

B(好吧!原来优化了时间,再想空间优化,一般我只做前一个)想了想,遍历!

A 对!

B 哦,真的!(顿悟)递归实现,每次比较左右孩子即可!4种情况。

A 写一下代码。

B (好吧,习惯了!)下笔就开始,发现自己没写好,又自己重写了一次,大约花了7~8min,好了。

A 面试官看了看,行。

A 再看一个题:一个二叉树,层次遍历!写一下代码。如果你想记录下来一起输出也行。

B (搞的我好像很喜欢开数组似的,还有没有完!)BFS层次遍历就行。

。。。写完代码

A 你先到外面等一下!

B 恩。

大约5min,通知进去二面。

/----------------------------我是evil的分割线---------------------------------------------/

/--------------------------------------------------------------------------------------------------/

A 做,先简单介绍一下!

B 恩我来自……(介绍完毕)

A 下面我们来讨论一下CS.

B 不好意思,没听太清CS是?

A Computer Science(不屑)

B 哦,计算机科学!(汗)

A 看了你的简历,平时都研究哪方面的算法?

B (又重复了一遍。。。)

A我们先看一个问题:黑白棋盘,从左上角到右下角是否有路,只能访问上下左右4个位置,且为白色?问是否可达?

B (心中窃喜,BFS寻路,签到题)问:用不用记录步数?

A 不用!先看是否可达?

B 那就是BFS!

A 你写一下代码!

B 大约6min,写完!最坏的情况下,复杂度O(n*m)

A 他一行一行看了代码!好像没发现什么问题,说怎么没输出路径!!

B (晕!你不早说!)拿回代码,改之,开了一个标记数组,存储方向!到达终点,从终点回溯输出即可!

B 可不可以不回溯!你这多了一重循环!复杂度最多是(n*m+n+m)只是增加了O(n+m),时间复杂度!总的时间复杂度根本没增加!!(真感觉,太没风度了,能不能找个心服口服的理由)!

A 不一样,能不能不开标记数组!能不能不要那重循环找路!

B 那就递归DFS,我写的是BFS!

A 能不能不用递归!

B 那就将递归DFS改成非递归DFS,那也得开数组记录状态啊!

A 能不能不开数组!

B 非递归,不开数组怎么保存状态!(我感觉,越来越…..)(声音好大,别人还以为我们吵起来了)

A 那么我们来换一个题:

现在,我们的服务器上有一个APK文件,你知道就是一个ZIP包,对于每一个用户请求,先建立连接,然后判断请求来源,把apk解包,在manifest后追加来源信息,再打包成apk,发给请求方。

问:1.如果多个用户同时请求,没有时差,怎么解决冲突?

2 .如何提高数据的发送效率?

B 单例模式?

A 单例模式解决不了。

B 如果多用户同时请求,可以建立一个请求队列,然后判断请求队列是否为空,不为空,则循环取队列中的请求建立连接!

A 如果两个用户的请求同时到达!

B 对文件加锁!!

A 如果两个请求同时请求加锁?

B 这个….我不是很清楚!

A 那么看第二个问题,如何提高数据的发送效率?

B 得先找瓶颈段,看哪段效率最低?我觉得的瓶颈段应该在节点的转发上!spfa寻最短路!

A 不是!!

B 哦,数据到公网上就不受发送者控制了!那就是服务器端,数据包分组发送?

A 那怎么分组?

B 这个不是默认就分好的吗!

A 你可以控制!

B 好吧!这个不是太懂!

A 那今天就到这里吧!你先回去吧!

B (估计没戏!回去好好学习吧!)

B 单例模式?

A 单例模式解决不了。

B 如果多用户同时请求,可以建立一个请求队列,然后判断请求队列是否为空,不为空,则循环取队列中的请求建立连接!

A 如果两个用户的请求同时到达!

B 对文件加锁!!

A 如果两个请求同时请求加锁?

B 这个….我不是很清楚!

A 那么看第二个问题,如何提高数据的发送效率?

B 得先找瓶颈段,看哪段效率最低?我觉得的瓶颈段应该在节点的转发上!spfa寻最短路!

A 不是!!

B 哦,数据到公网上就不受发送者控制了!那就是服务器端,数据包分组发送?

A 那怎么分组?

B 这个不是默认就分好的吗!

A 你可以控制!

B 好吧!这个不是太懂!

A 那今天就到这里吧!你先回去吧!

B (估计没戏!回去好好学习吧!)

最后的最后:没有深入的了解TCP/IP……. 觉得各种解释都是那么苍白无力!再次感叹书到用时方恨少!

PS: 感觉自己就是战斗力只有几的渣渣,革命尚未成功,同志还需努力!

2015美团网面试经验分享相关推荐

  1. 美团网面试流程android,美团网面试经验

    面试过程: 如果面试通过,美团面试流程挺快的,三天内就可以完成三面. 本人211本,985硕,之前有过美的.京东实习三个月经验. 3月22笔试,4月27收到一面通知,28一面,29二面电话,30加面视 ...

  2. 美团优选前端面试经验分享

    应对互联网技术面试绝不仅仅是刷题就可以达到的.首先选择技术岗位,其次每个岗位开始都是先着手面经,多看到了解,提炼出必考的技术点合集,最后针对这些必考技术,系统学习,融会贯通. 对这个岗位的必备技能,一 ...

  3. 2023级安全岗面试题及面试经验分享

    写在前面 个人强烈感觉面试因人而异,对于简历上有具体项目经历的同学,个人感觉面试官会着重让你介绍自己的项目,包括但不限于介绍一次真实攻防/渗透/挖洞/CTF/代码审计的经历 => 因此对于自己的 ...

  4. Java面试题(二十)面试经验分享

    面试经验分享 奇安信 启慧众智 中海庭 小源科技 普罗格 云粒科技 星辰 腾讯 DaoCloud 网化化工 源启科技 旷世科技 国能日新 十荟团 凌安科技 绿安健膳方 木仓科技 联易融数科 融捷科技 ...

  5. 秋招在即,你准备好了吗?BAT算法工程师面试经验分享。

    本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善. 一 ...

  6. 【网络安全面经】2023届网络安全岗秋招面试题及面试经验分享

    随着国家政策的扶持,网络安全行业也越来越为大众所熟知,相应的想要进入到网络安全行业的人也越来越多,为了更好地进行工作,除了学好网络安全知识外,还要应对企业的面试. 所以在这里我归总了一些网络安全方面的 ...

  7. 一个老兵的linux学习和面试经验分享 【转载】

    文章出处:一个老兵的linux学习和面试经验分享 特别说明:本文为约9个月前老男孩linux培训内部师兄给师弟的经验分享,经过该同学同意,特此分享给所有博友. 学习和面试经验分享 大家好,非常高兴能在 ...

  8. 2023级网络安全岗面试题及面试经验分享

    在当今社会网络安全行业越来越发达,也有越来越多的人去学习,为了更好地进行工作,除了学好知识外还要应对企业的面试. 所以在这里我归总了一些网络安全方面的常见面试题,希望对大家有所帮助. 一个2023届毕 ...

  9. 建行计算机面试个人介绍,2013建设银行四川省分行个人面试经验分享

    建行是在12月的时候悄悄到学校来的,当时是在计算机学院做的宣讲,我是学院推荐过去的,所以有幸参加了这次初选.过去的时候已经比较晚了,错过了宣讲,宣讲之后就是初面,建行的hr把简历收上去编好号,十个人一 ...

最新文章

  1. postgrepSQL psql基础操作
  2. Java 8中的时间日期库DateTime API及示例
  3. Springboot使用JPA框架对数据库实现增删改查(附详细代码)
  4. 转发高人文章:以前写的一些有关代码签名/时间戳数字证书的东东
  5. 【学术相关】新一轮“双一流”名单公布!这些学校上榜
  6. java内存图解_图解JAVA内存模型(JMM:JAVA Memory Model)
  7. ACM组队训练记录(Grooming)
  8. App Store 审核指南(中文版)
  9. QuickBI助你成为分析师——搞定数据源
  10. html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
  11. 走向ASP.NET架构设计--第一章:走向设计
  12. golang1.1-基础环境的配置以及事项
  13. html表单鼠标悬停变色,当我将鼠标悬停在html表格中时,更改单元格中颜色的颜色...
  14. C++ 计算三角形面积
  15. 爬虫之旅(二):爬取b站搜索数据
  16. vue3 接入网易易盾(webpack,vite)
  17. H+4.9响应式后台主题UI框架源码带完整文档-免费下载
  18. 遭遇裁员,如何渡过心理危机?
  19. day21-pdf作业
  20. 远控木马上演白利用偷天神技:揭秘假破解工具背后的盗刷暗流

热门文章

  1. Vue实例 和 Vue实例周期生命函数
  2. html 游戏键盘,HTML tabindex属性与web网页键盘无障碍访问
  3. 010 MATLAB奇淫技巧之实现图片扫描
  4. 嵌入式linux debian开机启动脚本编写
  5. CodeCraft-22 and Codeforces Round #795 (Div 2.)
  6. R语言向前或者向后移动时间序列数据(自定义滞后或者超前的期数):使用lag函数将时间序列数据向后移动一天(设置参数k为负值)
  7. [Mysql] LAG()函数 | LEAD()函数
  8. java键盘输入字符串静态变量_Java 中为什么样在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?老师说字符串常量和静态变量放在data segment中...
  9. 自制小强机器人,能看能听能说能画
  10. @Schedule中关于fixedDelay和fixedRate的区别