找到100亿个URL中重复的URL?求最优解

1、给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL?
2、找到100亿个URL中重复的URL?

全部评论
第一题:50亿*64B约320g,内存限制4g,所以,用一个hash函数把A文件中的url分到1000个小文件中去,把url通过hash后的值当做文件名,然后B文件也用同样的hash函数去分到1000个小文件中,这样寻找的时候,按照同名的文件从AB两个文件中去找重复(相同的url肯定分在相同文件名的小文件找那个),这样的话内存肯定能满足。 第二题,类似也是用hash去处理,重复的url肯定会分到同一个文件中去,接下来就是找重复的就是了
12 回复 分享
发布于 2017-08-13 20:29
布隆过滤
点赞 回复 分享
发布于 2017-08-14 08:41
hash过滤掉重复的,然后比对
点赞 回复 分享
发布于 2017-08-13 21:41
我觉得应该是用布隆过滤器,不过缺点是存在一定错误率
点赞 回复 分享
发布于 2017-08-13 20:39
B文件哈希成300个小文件,这个过程中去重,只保留不同的url。 然后流式读入A文件的url,根据之前哈希函数来比对,是重复的就保留结果。 差不多就这个套路吧,至于哈希函数可以md5之类的,然后再用普通的字符串哈希函数来计算出个数字来除余?? 我对这个全靠yy,根本没有做过
点赞 回复 分享
发布于 2017-08-13 20:06
hssh分片?
点赞 回复 分享
发布于 2017-08-13 20:06

相关推荐

缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
点赞
35
分享

创作者周榜

更多
牛客网
牛客企业服务