大数据常见面试算法题复习
Posted 张博的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据常见面试算法题复习相关的知识,希望对你有一定的参考价值。
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去重最快.
以上是关于大数据常见面试算法题复习的主要内容,如果未能解决你的问题,请参考以下文章
Android面试复习框架及题型解析,最新Android中高级面试题合集