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

每天一道面试题,为今年找工作早做准备!笨鸟先飞,哈哈(2012年2月篇)

2012-02-01 22:30 218 查看
1、腾讯面试题:用UDP协议通讯时怎样得知目标机是否获得了数据包

在应用层模仿TCP:

在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。

发送方在发送数据时将此ID和发送时间记录在本地。

接收方在收到数据后将ID再发给发送方作为回应。

发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。

2、华为面试题:语句for(;1 ;)是什么意思?

由于for循环的判断部分是1,永远为真,所以这是一个无限循环,作用和while(1)相同。

3、迅雷面试题:合并用户基本信息和看电影的记录

如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。



显然内存不能同时存下所有的数据,所以考虑分而治之的思想。

假设1K Byte可以保存一个用户的基本信息和看电影记录。我们可以将基本信息和看电影记录都按照hash(user_name)%100的余数各分成100个小文件。利用1G内存,我们可以每次只处理一对小文件,然后将结果输出到一个文件中即可。

在处理一对小文件时,可以利用key为用户名的hash_map将基本信息和看电影记录合并在一起。

(mapreduce)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: