九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试二十题
题记
本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9、10月份陪伴了至少三届毕业生找工作的旅程,包括校招中的笔试面试,今年也不会例外,我会在本博客开通3周年之际一如既往的陪伴大家一起成长。
本文所整理的全部笔试面试题要么来源于我群内群友们的分享,要么摘自论坛或博客,所有原题均来自网络。虽然本文中整理的绝大部分笔试面试题偏算法(自己特意为之之故),但不论是哪一年的校招,一般说来,笔试偏基础(尤其是选择题部分,涵盖语言,计算机组成原理、操作系统、网络协议、数据库、概率期望等知识),而面试则偏算法,且无论是笔试还是面试,两者都很看重你的实际编程能力,希望大家知晓。
OK, 本文会尽量保持每天更新一道新的笔试或面试题,直到9月底(更欢迎各位通过微博私信,或邮箱zhoulei97@aliyun.com提供题目,亦可直接评论于本文下),如果大家对以下任何一题中有任何思路,包括参考题解中有任何错误,欢迎随时评论于本文之下,或show me your code!谢谢。
九月迅雷,华为,阿里巴巴,最新笔试面试十题
- 8月15日,百度2道面试题: 1、来自《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球:的 i 、每次从通里面拿出来两个球; ii、如果取出的是两个同色的求,就再放入一个黑球; ii、如果取出的是两个异色的求,就再放入一个白球。 问:最后桶里面只剩下一个黑球的概率是多少? 2、算法题:给你一个自然数N,求[6,N]之内的所有素数中,两两之和为偶数的那些偶数。
- 9月5日,华为2014校园招聘的机试题目 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现函数: void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr); 输入pInputStr: 输入字符串lInputLen: 输入字符串长度 输出 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:“cccddecc” 输出:“3c2de2c” 输入:“adef” 输出:“adef” 输入:“pppppppp” 输出:“8p”
- 9月6日,网新恒天2014校园招聘笔试编程题 已知memcpy的函数为: void* memcpy(void *dest , const void* src , size_t count)其中dest是目的指针,src是源指针。不调用c++/c的memcpy库函数,请编写memcpy。 点评:老题,参考答案如下
//copyright@July 2013/9/24 void* memcpy(void *dst, const void *src, size_t count) { //安全检查 assert( (dst != NULL) && (src != NULL) ); unsigned char *pdst = (unsigned char *)dst; const unsigned char *psrc = (const unsigned char *)src; //防止内存重复 assert(!(psrc<=pdst && pdst
<=psrc && psrc - 9月9日,迅雷2014校招笔试编程题: 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 链表结点的结构类型定义如下:
- struct node
- {
- int elem;
- node* next;
- };
- 9月10日,美团网2014校招研发笔试哈尔滨站 1、链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现 点评:类似编程艺术第1章左旋转字符串,见:。 2、一个m*n的矩阵,从左到右从上到下都是递增的,给一个数elem,求是否在矩阵中,给出思路和代码 点评:杨氏矩阵查找,见编程艺术第23章:。
- 9月14日,阿里巴巴2014校招笔试哈尔滨站 1、宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为红方,另一些人作为蓝方。请问至少需要多少场比赛,才能使任意两个人之间有一场红方对蓝方和蓝方对红方的比赛?答案为4场,参考如下图,作者doc_sgl: 点评:其余题目请参见:。 2、一个有10亿条记录的文本文件,已按照关键字排好序存储。请设计算法,可以快速的从文件中查找指字关键字的记录。
- 9月14日,阿里巴巴-系统工程师-北京站
- 9月16日,创新工场2014校招笔试题 点评:上面第3题还是杨氏矩阵查找,见编程艺术第23章:。既然这么多公司都喜欢考杨氏矩阵查找,那么再给出杨氏矩阵查找一题的扩展:给定 n×n 的实数矩阵,每行和每列都是递增的,求这 n^2 个数的中位数,分析详见:。
- 9月21日,百度2014校招-济南站
- 9月21日,腾讯2014软件开发校招-简答题-广州 点评:这里有一关于上面2题的题解:,可以参考。
- 9月22日,人人校招笔试题 点评:上述第1题寻找满足条件的两个数,见编程艺术第5章:;上述第2题见编程艺术第21章:。
- 9月22日,阿里巴巴北邮站 点评:这里有一朋友关于上述3题的题解:,大家可以参考。
- 9月23日,网易电商部-社招面试 HashMap与HashTable区别 点评:HashMap基于Hashtable实现,不同之处在于HashMap是非同步的,并且允许null,即null value和null key,Hashtable则不允许null,详见:。此外,记住一点:hashmap/hashset等凡是带有hash字眼的均基于hashtable实现,没带hash字眼的如set/map均是基于红黑树实现,前者无序,后者有序,详见此文第一部分:。
- 9月24日,去哪儿网2014校招西安站笔试题 给定一个200MB的文本文件,里面存的是IP地址到真实地址信息的映射信息,例如:211.200.101.100 北京 然后给你6亿个IP地址,请设计算法快速的打印出所对应的真实地址信息。
- 9月25日,阿里巴巴二面 指针/数组区别,决策树训练原理,SVM原理,网络协议,堆排序,字符串转换成整数,设计一款拼音输入法等等.. 点评:字符串转换成整数看似简单,实则很多坑,要写好并不容易,具体分析和实现见编程艺术第30章:;决策树见:;SVM原理见:。 总结:此次面试的这位同学面的还是堆排/快排/atoi等典型问题,实际上:①面试看基础算法编程能力,和准备是否充分;②不论结果如何,跟4年前高考一样,高考和面试都只是人生路上的其中一站。你的真正核心竞争力不是进哪所名校哪所名企,而是存在你骨子里的上进心或热爱钻研技术的态度。
- 9月28日,微软2014校招笔试题最后一道 点评:上题形式上类似编程艺术第35章完美洗牌算法,但因给定的是链表,所以相对来说,简单了不少;微软2014校招其它题目见:。
- 9月28日,百度2014校招-武汉站-系统分析师
- 10月2日,暴风影音2014校招笔试 1、合并两个已经排序的单链表为一个排序的单链表,相同内容只保留一个 如:单链表a:1->2->3->4 单链表b:3->4->5 输出:1->2->3->4->5 2、编写程序,在原字符串中把尾部m个字符移动到字符串的头部,要求:长度为n字符串操作时间复杂度为O(n),时间复杂度为O(1)。 如:原字符串为”Ilovebaofeng”,m=7,输出结果:”baofengIlove”。 点评:还是类似编程艺术第1章左旋字符串:。 3、暴风影音的片源服务器上保存着两个文件a和b,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出a,b文件共同的URL。要求:算法设计。 点评:上述第3题等海量数据处理面试题,请参见此文第第一部分第6题:。
- 关于linux内核的几个面试问题: 1、Linux中主要有哪几种内核锁? 2、Linux中的用户模式和内核模式是什么含意? 3、用户进程间通信主要哪几种方式? 4、有哪几种内存分配函数?
- 微软一面:输入两个数,相加求和,二进制输出。
- 阿里巴巴面试: 阿里的log文件如下,有三个字段:time(登陆或登出时间点)+uid+login或logout,每条记录按时间顺序排列。问题如下:给定一个时间点T,统计在线人数。
- 10月9日,暴风影音校招研发笔试 1、给定字符串A和B,输出A和B中的第一个最长公共子串,比如A=“wepiabc B=“pabcni”,则输出“abc”。 2、TCP建立连接的3次握手过程?若最后一次握手失败,会怎样处理?
- 蜻蜓FM2014校招研发笔试
- 10月11日,腾讯web前端面试 一个数组 var arr = ['abc','ddadbc','adbdcd','abcqew'.......] 长度一万, 用最有效率的方法计算出包含被元素出现最多的。
- 10月12日,百度一面 JAVA里面的线程同步机制、异常处理机制、集合类、简单的设计模式、hashmap和hashtable的区别,及HashMap和ConcurrentHashMap的区别。 点评:关于hashmap和hashtable的区别,请看上文第13题,其余请自己查阅相关书籍。
- 待续,10月12日下午...
后记
有一点想不遗余力的特别强调:如果你是找软件开发相关的职位,那么基础第一,其次便是coding能力是否过硬,此决定你有多少资本/薪水/是在国内还是国外,最后才是算法,希望勿本末倒置。不少人总是有意无意忽视coding,以为虽coding能力一般,但算法好,抱有此种侥幸心理的最后都会发现得不偿失。不具备基本编程能力的人,永远无法真正迈进软件开发领域。
再者,算上今年,本博客已经连续整理了4个年头的笔试面试题,从这些笔试面试题中,细心的朋友自会发现,每一年校招的很多编程题屡屡都是上的原题,故我希望大家掌握的是一类题目的方法,而不是纠结于某一道题的标准答案。
正因为方法比答案重要,所以从最容易想到的思路开始讲起,一步步优化,而不是其它题解那样一上来就给你所谓的标准速成答案,面试亦如此。
最后,除了程序员编程艺术系列外,再推荐一些资料、书籍和讲座给大家,供大家参考:
- 程序员编程艺术;
- 秒杀99%的海量数据处理面试题;
- 《编程之美》;
- 微软面试100题系列;
- 《剑指offer》;
- 我个人举办的专为帮助大家找工作的面试&算法讲座:;
- 两个程序员面试网站,leetcode:,与careercup:。
有何见解或思路,欢迎随时评论于本文之下,或 show me your code!感谢。