饿了么三面

两个大文件,分别存放了很多数字,怎么找到两个文件所有相同的数字
全部评论
佬,请问现在有oc了的吗
点赞 回复 分享
发布于 04-08 23:26 黑龙江
首先,可以用 bit map 的方式来表示数出现的情况。具体地说,是申请一个长度为4 294 967295x2 的bit 类型的数组bitArr,用2 个位置表示一个数出现的词频,1B 占用8 个bit,所以长度为4 294 967 295x2 的 bit 类型的数组占用 1GB 空间。 遍历这 头一个文件,如果初次遇到num,就把bitArr[num*2 +1]和 bitArr[num*2]设置为01, 遍历第二个文件,如果第二次遇到 num,就把 bitArr[num*2+1]和bitArr[num*2]设置为 11 以后再遇到 num,发现此时 bitArr[num*2+1]和 bitArr[num*2]已经被设置为11,就不再做任何设置。 遍历完成后,再依次遍历 bitArr,如果发现bitArr[i*2+1]和bitArr[i*2]设置为11的情况,那么i就是出现了两次的数。
点赞 回复 分享
发布于 04-08 11:47 天津
海量数据统计问题吗
点赞 回复 分享
发布于 04-08 11:43 天津

相关推荐

评论
3
5
分享

创作者周榜

更多
牛客网
牛客企业服务