返回信息流求一个超大整型数组中前N大的所有数
有以下两条限制:
1. N个整数无法同时保存在内存中(内存大小不够用)
2. 这个超大整型数据只能读取一遍(或者说遍历一遍)
请问在以上两条限制同时存在的情况下,有什么办法解出来吗?
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #95561同步于 2018/4/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
【问题】请教一个面试题
lzj0218
2018/4/14镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
应该是指从文件到内存,因为内存连N个数都存不下,肯定也不能一次把所有数全加载到内存里去
【 在 sanchengzhu 的大作中提到: 】
: 只能读取一遍是指从内存到cpu吗
既然内存都存不下,如何返回结果呢?print吗?
【 在 lzj0218 的大作中提到: 】
: 内存存不下一个完整的堆啊
:
: 【 在 Nroskill 的大作中提到: 】
: : 这不是典型topK嘛
: : 建堆就好了
:
:
当时他说的是,这个文件每次读出来内容都是不一样的,所以第一遍读和第二遍读内容不同,所以只能读取一遍
能详细介绍下具体的做法吗,怎么哈希和归并?存辅助空间是指创建一个缓存文件在硬盘上?
【 在 Jerwin 的大作中提到: 】
: 归并的过程算多次遍历嘛?存的是辅助空间,应该不算?
: 大数问题一般是 hash映射+归并