如何判断一个整数是否在40亿个整数中?

本文探讨了如何利用位图法高效判断一个新整数是否包含在40亿个整数中。通过将所有可能的整数映射到位图上,使用1位表示存在,实现快速查找,仅需约500M内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:我有 40 亿个整数,再给一个新的整数,我需要判断新的整数是否在 40 亿个整数中,你会怎么做(每个整数是32位的)?

一个数在不在就是两个状态,在或者不在,就可以用1个位来代表。
每个整数是32位的,那么所有的整数也就2^32个,大概42亿个数左右。
可以申请2^32的位,把每一个整数都覆盖了,40亿个数的位分别为1,剩下的位为0。
新的整数,就可以跟进它的大小来判断相应的位,比如1245,就去看1245位是1还是0来判断是否在这40亿个整数中。

232个位,就是229个字节,也就是500M左右。

位图法(bitmap)

链接:
漫画:如何判断一个数是否在 40 亿个整数中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值