锁定老帖子 主题:水木上看到的一个面试题,讨论很激烈
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-19
一个文件中有40亿个整数(32位) 10MB内存 如何在读取一遍文件后给出不在这40亿个数中的任意一个数(32位) 看到很多人回帖讨论的很激烈,我在想,有那么复杂么?是不是给得信息太多了,限制了思路? 扫描一遍,还10M内存? 扫描一遍就够了,内存还用得着那么大么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-19
扫描一遍后的结果呢...不得放在内存中啊
|
|
返回顶楼 | |
发表时间:2011-05-19
supertaxi 写道 扫描一遍后的结果呢...不得放在内存中啊
我觉得给指定内存是用来迷惑人的,几个字节的内存足矣 |
|
返回顶楼 | |
发表时间:2011-05-19
nianien 写道 supertaxi 写道 扫描一遍后的结果呢...不得放在内存中啊
我觉得给指定内存是用来迷惑人的,几个字节的内存足矣 那你给说下你的想法吧,看看你用多少个字节,谢谢 |
|
返回顶楼 | |
发表时间:2011-05-19
这题目用关联数组一次就行了啊,不过还得扫描一个大数组,找到一个没有出现的数
|
|
返回顶楼 | |
发表时间:2011-05-19
jason61719 写道 这题目用关联数组一次就行了啊,不过还得扫描一个大数组,找到一个没有出现的数
那不就是想当于扫描两遍么?题目的意思扫描完文件直接得出结果来 |
|
返回顶楼 | |
发表时间:2011-05-19
一个文件中有40亿个整数(32位) 10MB内存 如何在读取一遍文件后给出不在这40亿个数中的任意一个数(32位)
啥意思,没看明白 |
|
返回顶楼 | |
发表时间:2011-05-19
求和,取差 => 结果.
|
|
返回顶楼 | |
发表时间:2011-05-19
去看《编程珠玑》去
就是书里的例子,照搬不动 思路是2分 |
|
返回顶楼 | |
发表时间:2011-05-19
最后修改:2011-05-19
有这么个想法咯:
用一个二维数组,我们简单的说个例子 简单起见,我们默认文件里的值都为整数 一个10*10的二维数组 如果我们拿到O,100,200 300 400 500 600,则将a[0][0]=127 则我们将得到一个1111111B也就是127. 我们可以以2,6....表示0未出现 同时a[0][1]可以为111111...表示 1 101 201 301 401 501 ... 按照这个思路,问题也许就解决了。 |
|
返回顶楼 | |