求两个数组的差集

最近看了看各位前辈的面试经验,对一些问题找了一下答案,但是还有很多没有好的思路,求各位帮忙解答。
(1)经典的n个数求前k大的数。分两种情况,第一是没有相同的数,另外一种是有。(有相同的数会有什么影响?怎么优化)
(2)两个文件A和B,求A中没有但B中有的单词。(腾讯和百度面试题,只能n*m时间复杂度么?)
(3)1G的内存可以装入2G的程序么?怎么装?
(4)10亿条短信,找出前一万条重复率高的
全部评论
1.堆排 2.【小文件】对A中单词建立set(unordered_set更好),然后对B中单词遍历,查set中有没有,复杂度是O(nlogn + mlogn),unordered_set应该是O(n+m) 【大文件,内存中放不下】对A中单词做hash,然后根据hash值分桶存储在不同文件中;对B中单词做hash,同样根据hash值分桶存储在不同文件中。然后读取按相同值段的A,B文件,按小文件方法处理。 3.关键字:swap 4.对每条短信做hash,然后按hash值分桶存储在不同文件中;逐个遍历文件,统计相同短信出现的频率,同时在内存中建堆,存频率最高的k个。
4
送花
回复
分享
发布于 2017-07-27 13:49
第三个可以用位运算吧,用一个bit来存一个数
点赞
送花
回复
分享
发布于 2017-07-27 10:52
蔚来
校招火热招聘中
官网直投
说说我的思路: 1.有相同和没相同应该没什么区别,用堆排。 2.可以考虑先排序然后同时遍历。 3.分页,虚拟内存。 4.可以用Hashmap,key可以用短信的hashcode或者md5值,这样就可以把所有短信的摘要信息一次读入内存,然后遍历。
点赞
送花
回复
分享
发布于 2017-07-27 10:38
第四个用树状数组吧
点赞
送花
回复
分享
发布于 2017-07-27 10:53
短信那个用map
点赞
送花
回复
分享
发布于 2017-07-28 21:01

相关推荐

点赞 19 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151388次浏览 17149人参与
# 通信和硬件还有转码的必要吗 #
11201次浏览 101人参与
# 不去互联网可以去金融科技 #
20346次浏览 255人参与
# 和牛牛一起刷题打卡 #
18954次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203365次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4971次浏览 30人参与
# OPPO开奖 #
19198次浏览 267人参与
# 通信硬件薪资爆料 #
265889次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2220次浏览 34人参与
# 互联网公司评价 #
97679次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25035次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454846次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53898次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14644次浏览 349人参与
# 硬件人的简历怎么写 #
82285次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19395次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28077次浏览 248人参与
# 学历对求职的影响 #
161230次浏览 1804人参与
# 你收到了团子的OC了吗 #
538694次浏览 6386人参与
# 你已经投递多少份简历了 #
344196次浏览 4963人参与
# 实习生应该准时下班吗 #
96968次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63519次浏览 622人参与
牛客网
牛客企业服务