已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。
8位整数可以表示的最大十进制数值为99999999。如果每个数字对应于位图中一个bit位,那么存储8位整数大约需要99MB。因为1B=8bit,所以99Mbit折合成内存为99/8=12.375MB的内存,即可以只用12.375MB的内存表示所有的8位数电话号码的内容。
类似的问题
10亿个正整数,只有1个数重复出现过,要求在O(n)的时间里找出这个数。
给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?