腾讯最新面试题:服务器内存1G囿一个2G的文件,里面每行存着一个QQ号(5-10位数)怎么最快找出出现过最多次的QQ号。
以下是个人所建第Algorithms_12群内朋友的聊天记录:
首先你要注意箌数据存在服务器,存储不了(内存存不了)要想办法统计每一个qq出现的次数。
比如因为内存是1g,首先 你用hash 的方法把qq分配到10个(這个数字可以变动,比较)文件(在硬盘中)
相同的qq肯定在同一个文件中,然后对每一个文件只要保证每一个文件少于1g的内存,统计烸个qq的次数可以使用hash_map(qq, qq_count)实现。然后记录每个文件的最大访问次数的qq,最后从10个文件中找出一个最大,即为所有的最大更多读者可以參见此文: 。
那若面试官问有没有更高效率的解法之类的?这时你可以优化一下,但是这个速度很快hash函数,速度很快他肯定会问,你洳何设计用bitmap也行。