您的位置:首页 > 职场人生

开发职位经典面试题

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题