大数据常见面试算法题复习

  

1、海量日志数据,提取出某日访问百度次数最多的那个IP。

解:ip个数是4个0到256的数字来表示.所以他是2^32个.

扫描一下日志:直接把所有第一个数字是n的放到一个文件n里面.这样我们有256个文件了.

对每一个小文件,他里面找到访问百度次数最多的ip(可以字典计数).然后得到256个ip.在256个ip里面找最大的.整体效率O(N)

2.假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。

解:用长度为10的小根堆(给一个字符串他的频率如果他比栈顶大就插入堆,否则就舍弃)和trie树.把字符串记录都给trie树,然后对应的value是出现的次数.

(也就是扫描到已经有的就加上去).这个结构搜索速度快.建立结构的同时维护一个长度为10的小根堆即可(每修改一个记录或者加入一个记录就更新一下小根堆).最后弹出小根堆结果即可.

3、在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。

经典bitmap题目.bitmap去重最快.

猜你喜欢

转载自www.cnblogs.com/zhangbo2008/p/9228550.html