开发职位经典面试题
2013-04-23 23:09
375 查看
最近面试,要做各种题目,在网上看到一个同志的文章, 把他的文章拿过来mark下,每个题目都要弄会啊。
下面是原文:
过去两个月,面了几乎所有的上点规模的IT公司,包括google,微软,甲骨文,百度,搜狐,QQ,360,小米科技,人民搜索,百分点,云壤,美丽说,京东,轩辕互动(现happy latte)。结果怎么样,就不吐槽了。只是想把一些经典的面试题与大家分享下。面试岗位:c++开发工程师(初级)。
语言部分:
虚函数,多态。这个概念几乎是必问。
STL的使用和背后数据结构,vector string map set 和hash_map,hash_set
实现一个栈类,类似STL中的栈。这个题目初看非常简单,当时我还有点不屑,怎么出这么简单的题。但写过c++和没有写过c++的人写出的代码是一眼就能看出差别的。譬如三大函数有没有写,引用的使用,都非常的关键。如果这方面没有经验,建议阅读下http://book.douban.com/subject/1971825/ 这本书中简单数据结构的实现,细节很关键
c部分:函数指针的声明
c++中的多线程
算法部分:
判断一个单链表是否存在循环(快慢指针的方法)
如何判断一副麻将牌胡了(回朔法)
二叉搜索树,节点上已经标有数字,如何找两个节点的最小公共节点(查找第一个在两个节点值中间的节点,如两个节点分别是3,8,查找在3,8之间的值的节点,如没找到,则3,8其中一个是另一个父节点)
二叉树,如何找两个节点的最小公共节点(比较笨的方法是,找到从root到两个节点的路径,然后两条路径的从root开始的最后一个相同节点就是所求节点。精妙点的参考lca算法)
最短摘要生成,有一个数组,还有一个集合,在数组中寻找包含集合中全部元素的最短子串。详细可以参见编程之美3.5
寻找最大的K个数,编程之美2.5
如何判断两个网页的相关性(如果说面试搜索相关的只是,看下吴军的数学之美大有裨益,其中的向量空间模型非常优美,TF和IDF这些术语也必须知道)
Hash的平均查找长度和装填因子的关系(好好回味下数据结构书吧)
一致性hash原理
rehash的时候可能导致插入的元素响应时间特别长,有无更好的方法?可以参考redis的rehash实现,当到了rehash的时候,不是一次性把所有的数据迁移到另一个更大的hash表中,而是每次迁移一个bucket,这样可以平摊时间
如何对全是01的文件进行压缩,一直没有好的答案。
系统设计部分:
当系统的处理请求时间一定的时候,如何可以加快响应速度。(cache的使用),当时很傻,竟然没想到这个,我给的答案是增加系统规模,这样只能减少请求等待时间。有时候面试人就会短路,google的题,想了半天才想出来
两块虚拟网卡进行通讯,但是需要数据加密,如何实现数据加密。感觉跟ssl很像
编程部分:
二分查找(频率超高)
建堆,顺便说下建堆的时间复杂度是O(n),不是log,证明可以看算法导论
写一个函数,将字符串反转,反转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数 (频率超高的一题,先反转整个字符串,然后反转每个词)
项目部分:
因人而异
原文地址:http://www.cnblogs.com/zhangjing230/archive/2012/05/17/2505711.html
下面是原文:
过去两个月,面了几乎所有的上点规模的IT公司,包括google,微软,甲骨文,百度,搜狐,QQ,360,小米科技,人民搜索,百分点,云壤,美丽说,京东,轩辕互动(现happy latte)。结果怎么样,就不吐槽了。只是想把一些经典的面试题与大家分享下。面试岗位:c++开发工程师(初级)。
语言部分:
虚函数,多态。这个概念几乎是必问。
STL的使用和背后数据结构,vector string map set 和hash_map,hash_set
实现一个栈类,类似STL中的栈。这个题目初看非常简单,当时我还有点不屑,怎么出这么简单的题。但写过c++和没有写过c++的人写出的代码是一眼就能看出差别的。譬如三大函数有没有写,引用的使用,都非常的关键。如果这方面没有经验,建议阅读下http://book.douban.com/subject/1971825/ 这本书中简单数据结构的实现,细节很关键
c部分:函数指针的声明
c++中的多线程
算法部分:
判断一个单链表是否存在循环(快慢指针的方法)
如何判断一副麻将牌胡了(回朔法)
二叉搜索树,节点上已经标有数字,如何找两个节点的最小公共节点(查找第一个在两个节点值中间的节点,如两个节点分别是3,8,查找在3,8之间的值的节点,如没找到,则3,8其中一个是另一个父节点)
二叉树,如何找两个节点的最小公共节点(比较笨的方法是,找到从root到两个节点的路径,然后两条路径的从root开始的最后一个相同节点就是所求节点。精妙点的参考lca算法)
最短摘要生成,有一个数组,还有一个集合,在数组中寻找包含集合中全部元素的最短子串。详细可以参见编程之美3.5
寻找最大的K个数,编程之美2.5
如何判断两个网页的相关性(如果说面试搜索相关的只是,看下吴军的数学之美大有裨益,其中的向量空间模型非常优美,TF和IDF这些术语也必须知道)
Hash的平均查找长度和装填因子的关系(好好回味下数据结构书吧)
一致性hash原理
rehash的时候可能导致插入的元素响应时间特别长,有无更好的方法?可以参考redis的rehash实现,当到了rehash的时候,不是一次性把所有的数据迁移到另一个更大的hash表中,而是每次迁移一个bucket,这样可以平摊时间
如何对全是01的文件进行压缩,一直没有好的答案。
系统设计部分:
当系统的处理请求时间一定的时候,如何可以加快响应速度。(cache的使用),当时很傻,竟然没想到这个,我给的答案是增加系统规模,这样只能减少请求等待时间。有时候面试人就会短路,google的题,想了半天才想出来
两块虚拟网卡进行通讯,但是需要数据加密,如何实现数据加密。感觉跟ssl很像
编程部分:
二分查找(频率超高)
建堆,顺便说下建堆的时间复杂度是O(n),不是log,证明可以看算法导论
写一个函数,将字符串反转,反转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数 (频率超高的一题,先反转整个字符串,然后反转每个词)
项目部分:
因人而异
原文地址:http://www.cnblogs.com/zhangjing230/archive/2012/05/17/2505711.html
相关文章推荐
- 开发职位经典面试题
- 开发职位经典面试题
- C++开发职位面试题收集与面试心得
- java开发工程师职位面试中遇到的一些面试题
- Google Android 开发工程师职位面试题
- Android应用开发经典面试题
- Google Android 开发工程师职位面试题
- Google Android 开发工程师职位面试题
- 我的Java开发学习之旅------>Java经典面试题
- iOS开发经典笔试面试题汇总(持续更新中)
- 嵌入式软件开发经典面试题
- Android开发面试题 71道经典题目
- 我的Java开发学习之旅------>Java经典面试题
- 软件开发职位面试题汇总
- Android开发经典笔试面试题汇总(持续更新中)
- Java设计模式之四(经典面试题:工厂模式在开发中的运用)
- Java设计模式之四(经典面试题:工厂模式在开发中的运用)
- Java设计模式之四(经典面试题:工厂模式在开发中的运用)
- 经典面试题:用户反映你开发的网站访问很慢可能会是什么原因
- 我的Java开发学习之旅------>Java经典面试题