菜鸟网络内推一面,时长1小时33分钟。
1.自我介绍
2.问了本科毕设。介绍项目,自己的设计效率有什么优势?(时间+空间)哪些是原创,哪些是受人帮助完成。编程语言?(C)编程过程中遇到了什么问题?
3.介绍算法比赛。问了蚁群算法,自己有哪些改进,各种追问细节。算法的效率如何?哪些因素会影响效率?还给出了另一种解决方案:限制蚂蚁经过的节点数,比如1000,如果蚂蚁找到终点,就记录当前步数。是否可以考虑每个节点都放置蚂蚁?结合实际问题总和问了蚁群算法。
4. 研究生课题介绍。
5.算法题:写出全排列。
我说了递归实现:http://blog.csdn.net/a358463121/article/details/45543879
给出了另一种思路:比如123,有4个空格,插入4的位置有4中。
6.算法题:用汉语表达数字。比如:123,一百二十三;101,一百零一;1001,一千零一;1001000,一百万一千。限定最大的数为“亿”。
不太会,面试官很好,给出了思路:参考有限状态机的想法。注意到,中间加不加零,是根据每4位中间有没有零而定的。因为限定了最大为“亿”,所以将数字从千万开始除,再除千。分别看中间有没有零,记录状态。大概意思是这样,一会还要再思考一下。
7.堆中插入元素,如何实现
8.数据库:以id为例,查找重复元素的。
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
9. 操作系统:三个线程A,B,C,要求,先输出A,再输出B,再输出C;再输出A ···以此类推
我答了wait()和唤醒。意思应该是对了,但还要再看看。
10. 最近在看什么书?(《程序员面试宝典》哈哈哈哈)对方尴尬,看了多少?平时看书速度怎么样?看没看其他技术书?
11. C++之外接触过什么语言?
12. 学习能力如何?500页的数能看多久?
13.如何评价自己的编程能力?
14. 有没有其他问题想问的。
最后聊得很愉快了,然后问了阿里的面试流程:3轮技术+1轮HR,只会越来越难。面试官建议多看算法、数据结构,计算机网络、操作系统,数据库也要看。对项目要熟悉,比如我参见的最优路径比赛,就一定要知道其他的最短路径算法。
面试官人真的很好,从上周开始各种打电话我都没有接到,竟然还没放弃我,给我发了短信。比较幸运遇到了这么好的面试官。
希望后面的面试也顺利!!!