腾讯服务器每秒有2W个QQ号同时上线,找出5min内重新登入的qq号并打印出来

在这里插入图片描述
如果空间足够大,可以定义一个大的数组a[qq号],初始为零然后.这个qq号登陆了
就a[qq号]++
最后统计大于等于2的QQ号
这个用空间来代替时间
不成熟的想法
2w x 300s
所以用6000.000个桶。刪除超时的算法后面说,所以平均桶的大小是1
假设qq号码一共有1010个,所以每个桶装的q号码是1010/(6*10~6)个,
这个是插入时候的最坏效率(插入同个桶的时候是顺序查找插入位置的)
qq的节点结构和上面大家讨论的基本一样,增加一个指针指
向输出列表,后面说
struct QQstruct {
num_type qqnum,
timestamp last_logon_time,
QQstruct *pre,
QQstruct *next,
OutPutlist *out //用于free节点的时候,顺便更新下输出列表
}
另外增加两个指针列表
第一个大小300的循环链表,自带一个指向 QQStruct的域,循环存300秒内的qq指针。
时间一过就fee掉,所以保证所有桶占用的空闾在2wX30以内.
第二个是输出列表,就是存放题目需要输出的节点。
如果登陆的用户,5分钟内完全没有重复的话,每秒free2w个节点
不过在free的时候,要判断一下时间是不是真的超时,因为把节点入桶的时候,遇到重复的,
会更新一下最后登陆的时间。当然啦,这个时候,要把这个q号码放到需要输出的列表里面

2020年更多、更全、更新大厂面试资料,加群领取。 个人介绍获取进群方式

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值