腾讯面试:bitmap统计元素出现次数,使用较少内存

       有10亿个uint32元素,判断其中是否有相同元素。

       看到这个大数据的题目,还有内存限制,就用bitmap。在数据量比较少的情况下用hash表也是个不错的方法。

        这里要用2个bitmap,占用总内存1G。

        这里我们算算内存:uint32总共4个字节,根据bitmap的思想,2^32可以存储uint32数。

        因为一个是8个位,2^32/8 = 0.5 * 2^30= 0.5G(2^30 = 大约1百万)

       1G = 1024M = 1024 * 1024 B,所有说内存够用

     

       2个bitmap说一个数对应2个二进制位00(出现0次)    01(出现1次)  10(出现2次)  11(出现多次)

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盼盼编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值