总结面试题(他山之石)

1、HashMap与Hashtable的区别
点评:HashMap基于Hashtable实现,不同之处在于HashMap是非同步的,并且允许null,即null value和null key,Hashtable则不允许null,详见:http://oznyang.iteye.com/blog/30690。此外,记住一点:hashmap/hashset等凡是带有hash字眼的均基于hashtable实现,没带hash字眼的如set/map均是基于红黑树实现,前者无序,后者有序,详见此文第一部分:http://blog.csdn.net/v_july_v/article/details/7382693

2、9月24日,去哪儿网2014校招西安站笔试题
给定一个200MB的文本文件,里面存的是IP地址到真实地址信息的映射信息,例如:211.200.101.100北京
然后给你6亿个IP地址,请设计算法快速的打印出所对应的真实地址信息。

解法:用hashmap,200MB文件读入内存,遍历每一行,每个IP为Key,真实地址为value,构建hash.

           遍历6亿个IP,hash查找,key的value。

3、百度2014校招-武汉站-系统分析师

        

 个人想法:信息提取,用到的机器学习中的有关标注算法。之前看过一篇论文:手工标注训练集,条件随机场/svm。具体怎么做,待续。

 

4、10月2日,暴风影音2014校招笔试

合并两个已经排序的单链表为一个排序的单链表,相同内容只保留一个
如:单链表a:1->2->3->4
单链表b:3->4->5
输出:1->2->3->4->5

个人想法:之前见过两个已经排序的单链表合并成一个排序的单链表,没有限制相同内容只保留一个。在这应该是多加一个判定条件:如果相等,pb后移

       该题步骤:【1】设两个指针pa,pb分别指向单链表A、B头。
                           【2】比较pa/pb指针所指元素的大小:

                                         *pa==*pb     则  pb=*pb->next;

                                         *pa<*pb        则 pa=*pa->next;

                                         *pa>*pb        则  pb结点加到pa结点的前面,注意加之前记录pb的next。

                            【3】如果pa==NULL或pb==NULL表示有一个链表到尾了,直接把另一个链表,追加就行。注意如果是pb==NULL,pa!=NULL,不用追加,因为我们pa        个正是合并以后的单链表。

 

5、暴风影音的片源服务器上保存着两个文件a和b,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出a,b文件共同的URL。要求:算法设计。
点评:上述第3题等海量数据处理面试题,请参见此文第第一部分第6题: 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

5*10^9=5G   64B   320G         

 可以估计每个文件的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。

  1. 分而治之/hash映射遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为这里漏写个了a1)中。这样每个小文件的大约为300M遍历文件b,采取和a相同的方式将url分别存储到1000小文件中(记为)。这样处理后,所有可能相同的url都在对应的小文件()中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可
  2. hash统计:求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。

此题解法摘自:http://blog.csdn.net/v_july_v/article/details/7382693

6、9月21日,腾讯2014软件开发校招-简答题-广州

A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。 

此题解法参考:http://blog.csdn.net/thebestdavid/article/details/12056293

 

 7、KMP算法(待续)

 

注意:如果您发现错误,可以回帖指出;如果您有解法,也可以回帖。

 


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值