免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5107 | 回复: 19
打印 上一主题 下一主题

百度两道面试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-27 01:44 |只看该作者 |正序浏览
我同学在武汉面百度,二面已经完了,还不知道结果。其中有两个问题,看看大家都有什么想法?
1、两个1G的文件,每个文件中都是随机生成的32位无符号整形数,内存600M,如何求出它们的交集和并集?
2、怎么从2.5亿个32位整数中计算有多少个不同的整数,600M内存

先说说我的想法:
1、分别对两个文件进行外排,最后再把两个文件归并。归并的过程中重复的去掉,那么归并的结果就是并集;而在归并过程中两者重复的数字集就是交集。

2、还是外排,多路归并的时候和前面一样去掉重复,最后生成的文件大小size除以4就是不同整数的个数了。

你们的想法又是什么?

论坛徽章:
0
20 [报告]
发表于 2007-09-30 19:18 |只看该作者
牛人啊,受益匪浅

论坛徽章:
0
19 [报告]
发表于 2007-09-30 18:00 |只看该作者
学习了

论坛徽章:
0
18 [报告]
发表于 2007-09-30 16:21 |只看该作者
原帖由 georgeying 于 2007-9-27 09:42 发表
哈,这两个问题解法其实都一样,很简单.其主要方法都是c语言里面的位操作
因为所有的整数都是32位无符号整数,所以,其范围为0~0xFFFFFFFF,也就是最多有
4G个数字可供选择.如果将这4G个数字从小到大依次排列,每个 ...

=======================================

真是个好方法啊.
学习了

论坛徽章:
0
17 [报告]
发表于 2007-09-30 16:01 |只看该作者
受益匪浅啊

论坛徽章:
0
16 [报告]
发表于 2007-09-30 09:28 |只看该作者
学习

论坛徽章:
0
15 [报告]
发表于 2007-09-29 11:38 |只看该作者
学习了

论坛徽章:
0
14 [报告]
发表于 2007-09-29 08:49 |只看该作者
哦  
知道了  谢谢

论坛徽章:
0
13 [报告]
发表于 2007-09-28 18:04 |只看该作者
原帖由 zcm211 于 2007-9-27 14:24 发表
我是菜鸟有 问题
32位数他没说  是二进制的   我不懂这个地方该怎么考虑?

32位就是指:在计算机内部,这个数是使用32位二进制位来表示的

论坛徽章:
0
12 [报告]
发表于 2007-09-28 16:10 |只看该作者
原帖由 georgeying 于 2007-9-27 09:42 发表
哈,这两个问题解法其实都一样,很简单.其主要方法都是c语言里面的位操作
因为所有的整数都是32位无符号整数,所以,其范围为0~0xFFFFFFFF,也就是最多有
4G个数字可供选择.如果将这4G个数字从小到大依次排列,每个 ...


佩服,
我觉得出考题的人应该就是要这个答案。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP